2010-06-09 89 views
0

我有一个添加到C#.NET项目的Web引用。 Web参考的URL需要根据我是为开发,分段还是生产环境而构建。我已经将Web服务设置为动态的,这意味着它需要我的app.config文件中的URL。无法将.NET引用的URL更改为动态Web服务

当我执行构建时,它会使用包含正确URL的所需文件(每个dev/staging/production的不同文件)覆盖app.config。然后进入解决方案属性并确保设置。设置文件用app.config更改更新。但是,当我查看Web服务的属性时,它仍然显示旧URL,尽管它是动态的,并且应该从我的设置文件中读取(即使在关闭并重新打开项目/解决方案之后).app.config和设置文件都具有新的URL,但Web引用不会注意到它已更改。

如果我进行构建,它会忽略设置文件中的URL并尝试连接到手动输入到Web引用属性中的最后一个URL。在这些属性中输入URL可以正确更新app.config和.settings文件,因此链接肯定存在。

我对.NET有点新,但在我看来,将服务设置为动态的目的是为了让您可以在其他地方更改URL,但是当我这样做时,它会被忽略!难道我做错了什么?

回答

0

UDDI在这里可能会有所帮助:向UDDI服务请求正确的URL,并在每个使用名称UDDI服务名称的环境中使用单独的UDDI服务器,以映射到环境的正确URL。然后你只需要为所有环境配置一个.config文件。某些示例参见MSDN

+0

感谢您的回复。为一个应用程序运行三个UDDI服务器似乎有点矫枉过正!不幸的是,我无法访问主机环境,因此无论如何这可能对我无法实现。 – Malvineous 2010-06-16 01:30:40