我的网站包含一个包含PDF的虚拟目录。
用户使用http://myApp.com/PDFs/12345678.pdf等URL访问PDF,其中PDFs
是映射到\\\actualPhysicalServerName\PDFsDirectory\
的虚拟目录。
这很有效。
我经常重新部署应用程序。重新部署应用程序并重新启动网站后,用户将无法再访问虚拟目录,直到IIS重新启动。
访问上述网址会出现以下错误:
加载配置文件时出错:无法开始监控对
\\\actualPhysicalServerName\PDFsDirectory\web.config
的更改,因为访问被拒绝。at System.Web.FileChangesMonitor.FindDirectoryMonitor(String dir, Boolean addIfNotFound, Boolean throwOnError) at System.Web.FileChangesMonitor.StartMonitoringFile(String alias, FileChangeEventHandler callback) at System.Web.Configuration.WebConfigurationHost.StartMonitoringStreamForChanges(String streamName, StreamChangeCallback callback) at System.Configuration.BaseConfigurationRecord.MonitorStream(String configKey, String configSource, String streamname) at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
重新启动应用程序池没有帮助。 我必须重新启动IIS。 重新启动IIS后,可以按预期访问虚拟目录。
这是预期的行为吗?我是否错误地设置了虚拟目录?
我使用的是IIS 7.5,Windows 7服务器和.NET 4.5。
答案 0 :(得分:13)
我用这种方式解决了这个问题:
答案 1 :(得分:9)
对于其他任何对同一问题感到沮丧的人 - 虽然我没有找到问题的症结所在,但我确实发现这个问题与网站运行的应用程序池的身份有关。
就我而言,解决方案是将App Pool身份从ApplicationPoolIdentity内置帐户更改为自定义帐户,该帐户是所有相关计算机的管理员。
要做到这一点
答案 2 :(得分:1)
我有一个虚拟目录指向UNC共享上的图像。一切正常,直到我们将父应用程序更新为.NET 4.5。
我们必须使用4.0集成应用程序池将VirDir转换为虚拟应用程序。
答案 3 :(得分:0)
旧主题,但我能够通过遵循这些instructions来解决它(基本上将ASPNET和IUSR添加到权限:
在Windows资源管理器中,浏览到应用程序文件夹或包含内容的虚拟目录(例如,c:\ inetpub \ wwwroot \ xx)。
右键单击该文件夹,然后单击“属性”。
在“安全”选项卡上,单击“添加”。
在"选择用户或组"窗口,点击Advance
点击立即查找按钮,您将看到用户列表
选择ASPNET和IUSR_(machinename),然后单击OK关闭"选择用户或组"窗口
允许ASPNET和IUSR_(机器名)帐户具有以下权限:
-Read&执行 - 列出文件夹内容 - 读取