【发布时间】:2014-08-21 23:08:02
【问题描述】:
我正在创建一些身份验证表单,用户必须在其中定义 WCF 服务 IP、用户名和密码。
在创建与服务的连接之前,用户输入的端点 IP 地址会保存到 app.config 文件中。见以下代码:
Configuration configFile = ConfigurationManager.
OpenExeConfiguration(ConfigurationUserLevel.None);
ServiceModelSectionGroup serviceSection = ServiceModelSectionGroup.
GetSectionGroup(configFile);
ClientSection clientSection = serviceSection.Client;
Uri uri = clientSection .Endpoints[0].Address;
UriBuilder builder = new UriBuilder(uri);
builder.Host = ServerIP;
clientSection .Endpoints[0].Address = builder.Uri;
configFile.Save(ConfigurationSaveMode.Modified);
在第一次连接到 WCF 时一切正常,也就是说,如果 IP 正确,它将验证用户,如果不正确 - 将显示相应的消息。
但是,如果在第一次连接后更改了服务的端点 IP 并重新创建了客户端对象,它会尝试使用以前的 IP 地址而不是新的 IP 地址连接到服务。
我尝试将新端点直接设置为这样的服务:
ServiceClient client = new ServiceClient();
client.Endpoint.Address = new_uri_address;
但没有成功。
我想知道为什么会发生这种情况以及如何正确地将新端点分配给 WCF 客户端?
【问题讨论】:
标签: c# web-services wcf wcf-endpoint