更改 WCF 终结点

本文关键字:结点 WCF 更改 | 更新日期: 2023-09-27 17:55:52

我从显示 spring.net 示例的初始示例中进行了以下配置。

<wcf:channelFactory id="serverAppHost"
channelType="Contract.IHost, WcfService.Contract"
endpointConfigurationName="serverAppHostEndpoint" />
<client>
    <endpoint name="serverAppHostEndpoint" address="http://xxxxx:yyyyy/program/service/host" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding1" contract="Contract.IHost"/> 
</client>

我的可以读作

IApplicationContext ctx = ContextRegistry.GetContext();
IHost val = (IHost)ctx.GetObject("serverAppHost");

如果我上面的端点具有正确的 IP 地址和端口号,则所有这些都可以正常工作。

我正在寻找一种在代码中编辑端点的方法,以使用启动时未知的 IP 地址和端口号。有没有办法做到这一点?

更改 WCF 终结点

我解决了一个类似的问题。基本上,一旦应用程序运行,通道工厂就不是很灵活。您最好使用服务代理并像这样动态设置端点,

var client = new SampleClient();
client.Endpoint.Address = new EndpointAddress(url);
client.Open();
responseMessage = client.ServiceMethod(requestMessage);

SampleClient 是 Visual Studio 为你生成的服务代理。您需要一个 WSDL 来生成它。Web .config 中仍需要虚拟客户端/终结点标记,但在动态 URL 中加载时,该标记将被覆盖。

如果您需要更多详细信息,请告诉我。我可以引导您完成具体的实现。