在没有配置文件的情况下连接WCF客户端(但通过代码)



我知道这个问题已经被问到(某种形式),但是我是新手,无法使其正常工作。问题:需要创建一个.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实现此目的,请发表评论或其他问题。

相关内容

  • 没有找到相关文章

最新更新