我正在将ASP.NET 2.0(3.5 SP1)应用程序迁移到.NET 4.0。它利用SQL Server Reporting Services 2008R2 Web服务。此Web服务是老式的asmx soap Web服务。
那时,我添加了一个Web引用,并将其设置为dynamic,并在<applicationSettings>
的web.config
中选择了一些配置代码。
迁移到Visual Studio 2010和.Net 4.0之后,我不得不重新添加Web参考。 .Net 2.0 Web引用对话框按原样添加代理类。但是现在它在我的项目的settings.settings
文件夹中包含一个Properties
文件。我可以接受,但是settings.settings
文件在编译后不可用。看起来它已被编译到dll中。
即使将settings.settings
配置粘贴到我的web.config
中并删除settings.settings
文件也无济于事。我收到一个名称空间编译错误,因为vs生成的代理类期望settings.settings
...
那么,如何包含我的Web参考并使其在配置文件中可调?
要么告诉Web参考编辑器使用web.config
,要么?
还是将settings.settings
文件设置为xml以便可以在部署时进行更改?
否则任何其他帮助也将是很棒的...
最佳答案
这可能对您有所帮助,但可能无济于事,但这是我们解决此问题的Web服务方法。我们为给定的Web服务创建一个包装器类,并且每次实例化代理类时,都在引用<appSettings />
节点的代码中设置URL。
例如
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
}
}
关于c# - 告诉Web引用使用web.config或如何使设置可编辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13607074/