0

对于将要部署到不同客户的应用程序,我对使用服务引用有一些疑问。它是 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。但这会让我失去服务参考的好处,据我了解,它创建了所需的代理,因此我可以在客户端使用它。

无论您需要什么其他信息来帮助我,请不要犹豫。并提前感谢!

4

1 回答 1

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);
于 2013-04-16T17:51:45.897 回答