我正在使用Visual Studio开发一个ASP.Net项目,该项目托管在本地IIS服务器上。整个站点相当复杂,由多个应用程序组成,因此我使用的解决方案/项目只包含其子目录中的当前项目。
我的应用程序需要访问其子目录之外的文件,我想使用Server.MapPath从实际网站的根目录进行访问,并且仍然能够在IIS Express中进行调试。
我似乎无法在IIS Express的子目录中设置或创建适当的应用程序设置,允许root访问(项目文件夹上方的三个文件夹)。
示例:我的应用程序位于/ Apps / App1中,我在/ Data / Data1中访问了数据,但我在/ Apps / App1中设置了VS解决方案。在真实的Web服务器上,Server.MapPath(“/ Data / Data1 / file”)工作正常,但在IIS Express中没有,因为/相对于/ Apps / App1。
答案 0 :(得分:1)
默认情况下,ASP.NET运行的帐户无权访问其虚拟目录之外的文件。您需要使用具有更高优势的帐户来模仿您的部分代码。或者在web.config中设置impersnation(这有点冒险) 以下是一些解释这些内容的文章
ASP.NET - Reading and writing to the file-system, outside the application