我有一个要求,即应用程序将引用Web服务。每次安装新客户端时,我都需要通过在VSS中打开项目并重新添加引用来手动更新引用。
我是否可以在我的安装项目中添加引用,或者我可以通过C#中的代码添加/更新Web服务引用。
我没有创建设置或msi项目的经验。如果有人也可以给我一个很好的教程,那就太棒了!。
只是对服务的澄清没有改变,服务将托管在不同的mahcine,所以每次更改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" />
答案 0 :(得分:2)
我从来没有听说过这是一个实际的要求。我听过那些不知道你可以在运行时选择服务URL的人。
更新服务引用时,实际上是在更改客户端的代码。这至少意味着客户端的所有测试都应该在参考更新之后进行(以便您测试客户端使用的代码)。
使用“添加服务引用”时,在底部输入命名空间。这将与应用程序的默认命名空间相结合,成为创建多个类的命名空间。例如,如果您的默认命名空间是“MyWebApp”,并且在“添加服务引用”中使用“RemoteService”作为命名空间,则命名空间将为MyWebApp.RemoteService
。您可以使用Visual Studio中的“View-&gt; Object browser”检查此命名空间的内容。
现在,如果服务名为“OrderService”,那么将会有一个名为OrderServiceClient的类。它有几个构造函数。其中一个构造函数接受配置名称和URL。另一个接受配置名称和EndPointAddress
。你应该使用其中一个。
答案 1 :(得分:1)
这个要求听起来很奇怪。你为什么要更新参考?如果该服务会改变它的界面,那么您的客户端将不再起作用。所以我假设您的问题是,您想要在不同的URL下访问相同的服务?!如果是:您不必更新参考。您可以在不更新引用的情况下配置服务URl。