我正在用WCF服务替换现有的Web服务,作为迁移的第一步,我将使用BasicHttpBinding公开端点,直到客户端在今年晚些时候升级.
计划是使用Windows服务托管新的WCF服务(该服务只能在Intranet内调用,因此不需要HTTP),但是暴露基本HTTP和Net.TCP端点,以便迁移可以在阶段.
但是,我在WCF服务中获取调用者的主机名时遇到一些麻烦,查看当前使用Context.Request.UserHostName获取主机名的Web服务代码.我设法得到了呼叫者的用户名和IP地址,但环境中所有相关的权限/安全服务都使用主机名而不是IP,所以有什么方法可以让我在我的服务中获取HostName吗?
PS我已将安全模式设置为TransportCredentialOnly,并将clientCredientialType设置为Windows
由于您不是在IIS中托管,因此无法使用ASP.NET兼容模式来访问HttpContext
通常存在于ASP.NET进程中的模式.
相反,您可以在命名空间中的类上使用该GetHostEntry
方法来获取将包含您获取的IP地址的别名(DNS名称)的实例.Dns
System.Net
IPHostEntry