代码之家  ›  专栏  ›  技术社区  ›  theburningmonk

在wcf中获取调用方的主机名

  •  7
  • theburningmonk  · 技术社区  · 16 年前

    我将用WCF服务替换现有的Web服务,作为迁移的第一步,我将使用basichttpbinding公开一个端点,直到今年晚些时候升级客户端。

    计划是用Windows服务托管新的WCF服务(该服务只能从内部网调用,因此不需要HTTP),但同时公开基本的HTTP和net.tcp端点,以便可以分阶段进行迁移。

    但是,在我的wcf服务中获取调用者的主机名时遇到了一些问题,查看当前使用context.request.userhostname获取主机名的Web服务代码。我已经设法获得了调用者的用户名和IP地址,但是环境中所有相关的权限/安全服务都使用主机名而不是IP,所以我有没有办法在我的服务中获得主机名?

    p.s.我已经将安全模式设置为TransportCredentially,将ClientCredientialType设置为Windows

    1 回复  |  直到 13 年前
        1
  •  10
  •   casperOne    13 年前

    由于您没有在IIS中托管,因此无法使用 ASP.NET compatibility mode 访问 HttpContext 通常会出现在ASP.NET进程中。

    相反,您可以使用 GetHostEntry method Dns class System.Net namespace 得到 IPHostEntry instance 它将包含您正在获取的IP地址的别名(DNS名称)。