【发布时间】:2018-10-23 13:30:44
【问题描述】:
我想创建一个与两个 SOAP Web 服务通信的 C# 应用程序。这些网络服务(WSDL 文件)使用相同的 url
<root>/...dirPath.../dms.cfc?wsdl
<root>/...dirPath.../cobra.cfc?wsdl
<root> 应该是动态的,因为应用程序用户必须设置此变量。
首先我拿了这个
How can I dynamically switch web service addresses in .NET without a recompile?
并尝试过
https://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamic
我还发现了这个链接
但是这些链接没有帮助我找不到设置URL behaviour,我无法通过代码访问 URL 属性。
我创建了一个静态类来处理这两个 web 服务。用户可以更改 web 服务根 url。
一个示例网址是
http://localhost:8500/CoBRA/...dirPath.../dms.cfc?wsdl
或
http://myInstance.com/CoBRA/...dirPath.../dms.cfc?wsdl
由该代码处理
public static class CoBRAService
{
private static cobraClient cobraBaseClient = new cobraClient();
private static dmsClient cobraDmsClient = new dmsClient();
public static void SetWebserviceRootUrl(string rootUrl)
{
// cobraBaseClient.url = $"{rootUrl}/path/dms.cfc?wsdl";
// cobraDmsClient.url = $"{rootUrl}/path/cobra.cfc?wsdl";
}
}
两个 web 服务都没有从 System.Web.Services.Protocols.SoapHttpClientProtocol 继承,它们实现了这个 public partial class cobraClient : System.ServiceModel.ClientBase<MyProject.CoBRA_Base.cobra>, MyProject.CoBRA_Base.cobra
这是我的项目结构
在哪里可以设置 webservice url 或者如何访问 url 属性?
【问题讨论】:
标签: c# visual-studio web-services soap