我正在尝试调用WCF服务 . 我有以下约束:
-
客户端无权访问DNS
-
客户端代码是.NET Core,在Linux上运行
-
WCF服务(IIS)要求客户端使用主机名
-
IP地址发生变化,因此客户端在调用服务时会获取最新的IP地址
基于this link,可以在标头中设置主机,但是在.NET Core中调用WCF时我无法指定标头 .
我假设我应该做这样的事情来传递主机头中的主机名,但.NET Core中似乎不存在 WebOperationContext
:
var svc = new ServiceClient(ServiceClient.EndpointConfiguration.BasicHttpBinding_IService,
new EndpointAddress($"http://{GetLatestIP()}/Service.svc"));
using (new OperationContextScope(((ServiceClient)svc).InnerChannel))
{
WebOperationContext.Current.OutgoingRequest.Headers.Add("host", "myurl");
var response = svc.GetResponseAsync(request).Result;
}
有关如何使用.NET Core将标头传递给WCF服务的任何想法?
1 回答
尝试探索生成的ServiceClient . 它必须具有指定远程服务器地址的方法 .