如何在调用 .NET Core 中的 WCF 服务时指定主机名?



我正在尝试调用WCF服务。 我有以下约束:

  • 客户端无权访问 DNS
  • 客户端代码是.NET Core,运行在Linux上。
  • WCF 服务 (IIS( 要求客户端使用主机名
  • IP 地址
  • 会更改,因此客户端在调用服务时都会获得最新的 IP 地址

基于此链接,可以在标头中设置主机,但是在 .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 服务的任何想法?

尝试探索生成的服务客户端。它必须具有指定远程服务器地址的方法。

最新更新