【问题标题】:How to get the virtual path to where WCF is hosted on IIS rather than the physical path?如何获取 WCF 在 IIS 上托管的虚拟路径而不是物理路径?
【发布时间】:2020-07-06 09:11:12
【问题描述】:

我有一个托管在 IIS 服务器上的 WCF 服务,但是我尝试使用以下代码获取该服务托管在 IIS 上的路径,类似于:192.168.1.xx/WCFHosted/VirtualDirectory :

System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath

上面返回了一个与IIS Hosted WCF最初链接的地方对应的Physical path的路径,即Ex:D/MyService/WCFHosted,

如何返回 WCF 的 IIS 托管路径,

请指教, 提前致谢

【问题讨论】:

    标签: vb.net wcf iis hosting virtual-directory


    【解决方案1】:

    试试下面的代码 sn-ps。

    System.Environment.MachineName+"/" + System.Web.Hosting.HostingEnvironment.SiteName +System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath;
    

    我们可以使用DNS.GetHostAddress(hostname)方法将机器名转换为IP地址。

    var result = Dns.GetHostAddresses(Environment.MachineName).ToList();
                foreach (var item in result)
                {
                    Console.WriteLine(item);
                }
    

    如果有什么我可以帮忙的,请随时告诉我。

    【讨论】:

    • 亲爱的@Abraham,非常感谢您的回复,因为它解决了我的问题,但我有一个问题,为了只返回 IPv4 值,我使用以下代码:Dns.GetHostAddresses(Environment.MachineName ).Where(Function(w) w.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork),但是,这将返回 IPv4 用于(以太网适配器以太网 3 / 以太网适配器 VMware 网络适配器 VMnet1 / 以太网适配器 VMware 网络适配器 VMnet8 /无线 LAN 适配器 Wi-Fi),我只需要最后一个,有没有办法只获得那个 IP 或者它总是返回列表中的最后一个??
    • 我们必须过滤列表,因为本地可能有多个网络接口。 social.msdn.microsoft.com/Forums/vstudio/en-US/… 另外,这里有一个获取IPV4的方法。 Dns.GetHostEntry(Environment.MachineName).AddressList.First(a => a.AddressFamily == AddressFamily.InterNetwork);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多