我有网络服务的网络参考:
using (var client = new GetTemplateParamSoapClient("GetTemplateParamSoap"))
{
TemplateParamsKeyValue[] responsArray = client.GetTemplatesParamsPerId(
CtId, tempalteIds.ToArray());
foreach (var pair in responsArray)
{
string value = FetchTemplateValue(pair.Key, pair.Value);
TemplateComponentsData.Add(pair.Key, value);
}
}
尝试从c#代码更改网络引用网址:作为建议:
1)http://www.codeproject.com/KB/XML/wsdldynamicurl.aspx
2)How to call a web service with a configurable URL
3)http://aspalliance.com/283_Setting_Web_Service_References_Dynamically
但是在尝试做的时候我得到了符号:
client.Url
另外我找不到“Url_behavior”的属性
答案 0 :(得分:6)
听起来您已经添加了服务参考,但这是adding, updating and removing service references的演练。
一旦你在项目中得到了其中一个,就可以使用其中一个构造函数重载来改变端点URI,正如John Saunders上面所说的那样。为此,您需要知道配置文件中端点的名称。例如,在添加服务后,您的配置文件中可能包含以下元素:
<endpoint address="http://bleh.com/services/servicename.asmx"
binding="basicHttpBinding" bindingConfiguration="ServiceNameSoap"
contract="ServiceReference1.ServiceNameSoap" name="ServiceNameSoap" />
鉴于该端点,您可以使用以下重载在运行时更改address
:
var proxy = new ServiceReference1.ServiceNameSoapClient("ServiceNameSoap",
"http://new-address.com/services/servicename.asmx");
您也可以在施工后进行,但这会变得有点困难。如果您需要这样做,请参阅Endpoint属性和相关类型ServiceEndpoint上的文档。