我在IIS 7中部署了一个wcf Web服务。当发生错误时,我需要记录导致错误的消息。需要在网络共享上创建日志,开发人员可以访问共享(因为我们无法访问部署服务的服务器)。在IIS中创建了一个虚拟目录,其物理路径位于网络共享上。
如何获取虚拟目录的物理路径?我尝试过使用
System.Web.Hosting.HostingEnvironment.MapPath(virtualDirectoryPath)
但这只返回服务所在服务器上的物理路径。
例如,如果虚拟目录是“WSLogs”并且我将virtualDirectoryPath指定为“〜/ WSLogs”,我将返回C:\ inetpub \ wwwroot \ myServiceDirectory \ WSLogs \
答案 0 :(得分:10)
虚拟目录是在与Web服务相同的级别(在“默认网站”节点下)创建的。将虚拟目录移动到Web服务节点本身后,我可以使用以下命令获取虚拟目录的物理路径:
System.Web.Hosting.HostingEnvironment.MapPath(virtualDirectoryPath)
其中virtualDirectoryPath是〜/ WSLogs