我知道这个问题已经被问到(某种形式),但是我是新手,无法使其正常工作。问题:需要创建一个.NET DLL(C#),我需要从PowerBuilder(通过COM)进行调用 -> DLL将处理肥皂客户端的呼叫。
在.NET中没有太多经验,但设法与(例如)公共网络服务"交谈"。但是问题是我无法使用config-file(否则找不到端点的错误)。
请,有人可以帮我解决这个问题(也许是示例代码)?
这是配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="GlobalWeatherSoap" />
</basicHttpBinding>
<customBinding>
<binding name="GlobalWeatherSoap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://www.webservicex.com/globalweather.asmx"
binding="basicHttpBinding" bindingConfiguration="GlobalWeatherSoap"
contract="SrvRefWeather.GlobalWeatherSoap" name="GlobalWeatherSoap" />
<endpoint address="http://www.webservicex.com/globalweather.asmx"
binding="customBinding" bindingConfiguration="GlobalWeatherSoap12"
contract="SrvRefWeather.GlobalWeatherSoap" name="GlobalWeatherSoap12" />
</client>
</system.serviceModel>
</configuration>
我通过WSDL文件添加了一个"服务参考",并以这样的方式调用Web服务(例如):
SrvRefWeather.GlobalWeatherSoapClient client = new SrvRefWeather.GlobalWeatherSoapClient("GlobalWeatherSoap");
string strCities = client.GetCitiesByCountry("Belgium");
谁能告诉我我如何实现与没有配置文件相同的事情?
我认为我需要通过" basichttpbinding()"去,但不要在我的示例中引用'srvrefweather'-object。
任何帮助将不胜感激!真的...
谢谢Marc。
我设法使此(简单的)示例工作:
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://www.webservicex.com/globalweather.asmx");
SrvRefWeather.GlobalWeatherSoapClient client = new SrvRefWeather.GlobalWeatherSoapClient(binding, address);
string strCities = client.GetCitiesByCountry("Belgium");
谁能向我解释"配置文件中的合同标签"的含义吗?示例在这里
我在这里没有使用它,但是它可以工作...所以我想知道它在哪里使用?
谢谢。
没有回答您的问题,但是我个人总是会使用XML配置,因为它比在代码中创建所有内容要容易得多。
如果您不想要/不能具有外部配置文件,则可以在组装中包含XML的配置,例如。作为字符串常数或作为嵌入式资源。然后,您可以使用ConfigurationChannelfactory类从此配置数据创建客户端频道。
如果您想探索这种方法,并且不了解如何使用ConfigurationChannelFactory
实现此目的,请发表评论或其他问题。