我正在将 ASP.NET 2.0 (3.5 SP1) 应用迁移到 .NET 4.0。它利用 SQL Server Reporting Services 2008R2 Web 服务。此 Web 服务是一个老式的 asmx Soap Web 服务。
当时我添加了一个网络引用,将其设置为动态,并在我的 <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.config
, 或许?
或者输入settings.settings
文件以 xml 形式提供,以便可以在部署时更改?
或者任何其他帮助也很棒......
最佳答案
这可能对您有帮助,也可能没有帮助,但这是我们解决此问题的网络服务方法。我们为给定的 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 或如何使 settings.settings 可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13607074/