c#项目的部署和在安装时添加web服务引用

本文关键字:添加 web 服务 引用 安装 项目 部署 | 更新日期: 2023-09-27 17:53:52

我有一个需求,其中应用程序将引用web服务。每次安装新的客户端时,我都需要手动更新引用,方法是在VSS中打开项目并重新添加引用。

我可以添加参考作为我的安装项目的一部分,或者我可以通过c#代码添加/更新web服务参考吗?

我没有创建设置或msi项目的经验。如果有人能给我指出一个好的教程,那就太好了!

只是澄清服务没有改变,服务将被托管在不同的机器上,所以每次URI被改变。

app config中的代码片段:我需要通过代码或设置项目更新端点和servicePrincipalName吗?

  <endpoint address="net.tcp://rntn1099:8201/AX/Services/APVendInvoice"
  binding="netTcpBinding" bindingConfiguration="NetTcpBinding_VendVendInvoiceService"
contract="VendInvoiceService.VendVendInvoiceService"     name="NetTcpBinding_VendVendInvoiceService"><identity>  < servicePrincipalName value="host/RNTN1099.corp.xyz.com" />

c#项目的部署和在安装时添加web服务引用

我从来没有听说过这是一个实际的需求。我从不知道你可以在运行时选择服务的URL的人那里听说过。

当您更新服务引用时,您实际上是在更改客户端的代码。这意味着,至少,您对客户端的所有测试都应该在引用更新之后进行(这样您就可以测试客户端使用的代码)。

当您使用"添加服务引用"时,在底部输入一个命名空间。它将与应用程序的默认名称空间结合,成为创建多个类的名称空间。例如,如果您的默认命名空间是"MyWebApp",并且您在"添加服务引用"中使用"RemoteService"作为命名空间,那么命名空间将是MyWebApp.RemoteService。你可以使用Visual Studio中的"View->Object browser"来检查这个命名空间的内容。

现在,如果服务被命名为"OrderService",那么将会有一个名为OrderServiceClient的类。它有几个构造函数。其中一个构造函数接受配置名和URL。另一个接受配置名和EndPointAddress

这个要求听起来很奇怪。为什么要更新引用?如果服务改变了它的接口,你的客户端就不能工作了。所以我假设你的问题是,你想在不同的url下访问相同的服务?如果是:您不需要更新引用。

配置服务URl时不需要更新引用。