Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net IIS忘记虚拟目录权限-加载配置文件时出错:无法开始监视更改_Asp.net_Iis_Web Deployment - Fatal编程技术网

Asp.net IIS忘记虚拟目录权限-加载配置文件时出错:无法开始监视更改

Asp.net IIS忘记虚拟目录权限-加载配置文件时出错:无法开始监视更改,asp.net,iis,web-deployment,Asp.net,Iis,Web Deployment,我有一个包含PDF的虚拟目录的网站。 用户通过使用URL访问PDF,例如,PDF是映射到\\\actualPhysicalServerName\PDFsDirectory\的虚拟目录。 这很有效 我经常重新部署应用程序。重新部署应用程序并重新启动网站后,在重新启动IIS之前,用户无法再访问虚拟目录 访问上述URL会出现以下错误: 加载配置文件时出错:无法开始监视对\\\actualPhysicalServerName\PDFsDirectory\web.config的更改,因为访问被拒绝 at

我有一个包含PDF的虚拟目录的网站。 用户通过使用URL访问PDF,例如,
PDF
是映射到
\\\actualPhysicalServerName\PDFsDirectory\
的虚拟目录。 这很有效

我经常重新部署应用程序。重新部署应用程序并重新启动网站后,在重新启动IIS之前,用户无法再访问虚拟目录

访问上述URL会出现以下错误:

加载配置文件时出错:无法开始监视对
\\\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 server和.NET 4.5。

对于其他对同一问题感到沮丧的人-虽然我没有找到问题的症结所在,但我确实发现这个问题与网站运行的应用程序池的标识有关

在我的例子中,解决方案是将应用程序池标识从ApplicationPoolIdentity内置帐户更改为所有相关机器上的管理员自定义帐户

这样做

  • 右键单击IIS中的应用程序池,选择高级属性
  • ProcessModel->Identity下,选择Identity。选择自定义帐户(内置帐户、应用程序池标识是IIS 7.5中的默认设置)
  • 切换到使用自定义域帐户,即此计算机上的管理员以及虚拟目录所在的计算机。
    • 重新启动应用程序池

我这样解决了这个问题:

  • 创建了带有“无托管代码”和“经典设置”的新池
  • 已将虚拟目录转换为应用程序,正在与具有共享权限的用户帐户连接
  • 让应用程序使用新池

  • 我有一个虚拟目录指向UNC共享上的图像。在我们将父应用程序更新到.NET4.5之前,一切都很正常


    我们必须将VirDir转换为具有4.0集成应用程序池的虚拟应用程序。

    旧主题,但我能够通过以下方式解决它(基本上是将ASPNET和IUSR添加到权限中:

  • 在Windows资源管理器中,浏览到应用程序文件夹或包含内容的虚拟目录(例如,c:\inetpub\wwwroot\xx)

  • 在文件夹上单击鼠标右键,然后单击“属性”

  • 在“安全性”选项卡上,单击“添加”

  • 在“选择用户或组”窗口中,单击“高级”

  • 单击“立即查找”按钮,您将看到用户列表

  • 选择ASPNET和IUSR(machinename),然后单击“确定”关闭“选择用户或组”窗口

  • 允许对ASPNET和IUSR_(machinename)帐户具有以下权限:

    -读取并执行 -列出文件夹内容 -阅读


  • 我想知道为什么这个“停止”工作,直到我看到键“将父应用程序更新到.NET 4.5”。对于我来说,如果删除web.config行: