首页 文章

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

提问于
浏览
0

我正在尝试调用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 回答

  • 0

    尝试探索生成的ServiceClient . 它必须具有指定远程服务器地址的方法 .

相关问题