我正在将ASP.NET 2.0(3.5 SP1)应用程序迁移到.NET 4.0。它利用SQL Server Reporting Services 2008R2 Web服务。这个Web服务是一个老式的asmx soap web服务。
当时我添加了一个我设置为动态的网络参考,并在<applicationSettings>
的{{1}}中选择了一些配置代码。
迁移到Visual Studio 2010和.Net 4.0后,我不得不重新添加Web引用。 .Net 2.0 Web引用对话框按原样添加代理类。但现在它在web.config
文件夹中包含settings.settings
文件到我的项目。我可以忍受,但编译后Properties
文件不可用。看起来它已被编译到dll中。
即使粘贴settings.settings
中的settings.settings
配置并删除web.config
文件也无济于事。我收到命名空间编译错误,因为vs生成的代理类需要settings.settings
...
那么如何包含我的Web引用并使其在配置文件中可调整?
要么告诉网络参考编辑器使用settings.settings
,也许?
或者将web.config
文件作为xml提供,以便在部署时更改它?
或者任何其他帮助也很棒......
答案 0 :(得分:2)
这可能会或可能不会对您有所帮助,但这是我们解决此问题的Web服务方法。我们为给定的Web服务创建一个包装类,每次实例化代理类时,我们都会在引用<appSettings />
节点的代码中设置URL。
e.g。
public class MyWebService
{
private static readonly string _serviceUrl = ConfigurationManager.AppSettings["serviceUrl"] ?? "http://someserviceurl.com/service.asmx";
public MyWebService()
{
}
private WebServiceClient GetClient()
{
WebServiceClient client = new WebServiceClient();
client.Url = _serviceUrl;
return client;
}
private void Method1()
{
var client = GetClient();
// do stuff
}
}