【发布时间】:2017-08-25 05:28:27
【问题描述】:
我正在尝试调用 WCF 服务。我有以下限制:
- 客户端无权访问 DNS
- 客户端代码为 .NET Core,在 Linux 上运行
- WCF 服务 (IIS) 要求客户端使用主机名
- IP 地址发生变化,因此客户端在每次调用服务时都会获取最新的 IP 地址
基于this link,可以在标头中设置主机,但在.NET Core 中调用WCF 时无法指定标头。
我假设我应该做这样的事情来传递 host 标头中的主机名,但 WebOperationContext 在 .NET Core 中似乎不存在:
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 服务吗?
【问题讨论】: