【问题标题】:Directory access outside of wwwroot for a WCF service hosted on IISIIS 上托管的 WCF 服务的 wwwroot 之外的目录访问
【发布时间】:2011-12-22 11:24:52
【问题描述】:

我一直在研究当前托管在 IIS 上的 WCF 服务。我需要让 WCF 服务访问 wwwroot 文件夹之外的目录。

我是否正确假设 wwwroot 之外的目录访问仅限于托管在 IIS 上的 WCF 应用程序,因为它仅限于托管在 IIS 上的 ASP.Net 应用程序?

如果是这种情况,允许 WCF 服务访问 wwwroot 之外的设置文件夹的最安全方法是什么?

顺便说一句 - 我在混合传输模式下运行,而不是 ASP.Net 兼容模式。

【问题讨论】:

    标签: wcf iis iis-7


    【解决方案1】:

    文件访问将受到限制,具体取决于托管您服务的应用程序池的标识。您的服务将能够访问应用程序池身份可以访问的任何文件,无论它是否位于 IIS 网站的根目录中。如果您想使用像 Server.MapPath 这样的相对路径访问网站根目录中的文件,那么您必须在 ASP.Net 兼容模式下运行 WCF 服务。有关具有 ASP.Net 兼容模式的 WCF 的详细信息,请参见以下页面:

    http://msdn.microsoft.com/en-us/library/aa702682.aspx

    【讨论】:

      【解决方案2】:

      我认为最好的方法是为您的服务创建另一个应用程序池,并分配一个专门创建的帐户作为新应用程序池的标识。然后将所需的帐户权限授予您需要访问的文件夹和文件。如果要使用相对路径引用外部文件夹,可以将外部文件夹设为站点的虚拟目录。

      【讨论】:

      • 感谢您的建议 Pencho。我想我必须在 ASP.Net 兼容模式下通过 WCF 服务运行才能使用虚拟目录,不是吗?我目前在混合传输模式下运行它。
      • 是的,要使用虚拟目录和相对路径,您必须在 ASP.Net 兼容模式下运行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多