在IIS上托管的WCF服务的wwwroot之外的目录访问

时间:2011-12-22 11:24:53

标签: wcf iis iis-7

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

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

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

BTW - 我在混合传输模式下运行,而不是ASP.Net兼容模式。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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