想象一下,开发一个包含两个项目的WCF解决方案(WCF服务/和Web应用程序作为WCF客户端)。只要我在visual studio中开发这两个项目并将服务引用到客户端(Web应用程序)作为服务器引用,就没有问题。 Visual Studio自动为WCF服务器分配一个端口,并在服务器中配置所有需要的配置,包括服务器和客户端绑定到类似的内容:
<service behaviorConfiguration="DefaultServiceBehavior"
name="MYWCFProject.MyService">
<endpoint address="" binding="wsHttpBinding" contract="MYWCFProject.IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/MyService.svc" />
</baseAddresses>
</host>
</service>
并在客户端:
<client>
<endpoint address="http://localhost:8731/MyService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService"
contract="MyWCFProject.IMyService"
name="WSHttpBinding_IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
问题是我想经常在两个不同的服务器上发布这两个项目,因为我的生产服务器和服务网址将是“http://mywcfdomain/MyService.svc”。每次发布我的服务器项目时,我都不想更改配置文件。 问题是:Visual Studio 2008中是否有任何功能可以自动更改URL,或者我必须定义两个不同的端点,并在代码中设置它们(基于我的配置中的参数,例如Development / Published)。
答案 0 :(得分:0)
检查答案i posted here是否有类似的问题(如何以编程方式设置客户端端点)。
另一种方法是将应用程序编写为安装程序并让安装程序更新配置文件。这个解决方案会更纯粹,但更难实现,具体如何完成将取决于您使用的安装程序。