7

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

计划是使用 Windows 服务托管新的 WCF 服务(该服务只会从 Intranet 中调用,因此不需要 HTTP),但同时公开 Basic HTTP 和 Net.TCP 端点,以便迁移可以在阶段。

但是,我在 WCF 服务中获取调用者的主机名时遇到了一些麻烦,查看它使用 Context.Request.UserHostName 获取主机名的当前 Web 服务代码。我已经设法获取调用者的用户名和 IP 地址,但是环境中所有相关的权限/安全服务都使用主机名而不是 IP,那么我有什么方法可以在我的服务中获取主机名吗?

PS 我已将安全模式设置为 TransportCredentialOnly,并将 clientCredentialType 设置为 Windows

4

1 回答 1

10

由于您不是在 IIS 中托管,因此您不能使用ASP.NET 兼容模式来访问HttpContext通常存在于 ASP.NET 进程中的内容。

相反,您可以使用命名空间GetHostEntry方法来获取将包含您正在获取的 IP 地址的别名(DNS 名称)的实例。DnsSystem.NetIPHostEntry

于 2009-02-19T17:10:33.900 回答