WCF:生产中的服务引用

时间:2013-04-16 17:46:00

标签: vb.net wcf service-reference

对于将部署到不同客户的应用程序使用服务引用,我有些疑问。它是vb.net上的WCF服务,将托管在Windows服务中,并且将由具有不同IP地址的不同客户使用。不同的环境,可以这么说。

我已经制作了服务器和客户端。它们在客户端上使用服务引用工作得很好,但由于这些需要服务的URL(具有以下结构: net.tcp:// SomeHost:6666 / SomeService ),问题是:如何在客户环境中使用服务参考?我正在考虑以编程方式更改其URL,但我不知道是否可能。

当然,主机名将从客户更改为客户,但服务引用是静态的。我想过使用不同的方法,例如:http://mstecharchitect.blogspot.com.ar/2009/01/invoking-wcf-service-without-service.html。但这会让我失去服务参考的好处,据我所知,它创建了所需的代理,因此我可以在客户端使用它。

无论您需要哪些其他信息,请不要犹豫。并提前感谢!

2 个答案:

答案 0 :(得分:0)

您可以在配置文件(例如,appsettings)中存储您的服务端点地址,在代码中您只更新主机名。

您的appsettings将包含类似net.tcp:// {0}:6666 / SomeService。

创建客户端(代理)实例时 - 您将添加特定主机并传递此构建的地址。

类似的东西:

客户端上的app.config:

  <appSettings>
    <add key="YourService.ClientAddress" value="net.tcp://{0}:6666/SomeService" />
  . . .

然后,在代码中,

    string endpointUrl = string.Format(ConfigurationManager.AppSettings["YourService.ClientAddress"], Your_Host_name);
    YourClient client = new YourClient(YourEndpointName, endpointUrl);

答案 1 :(得分:0)

您可以为每个客户端使用不同的配置文件,请查看本文Getting Away with Client Config in WCF