代码之家  ›  专栏  ›  技术社区  ›  Daniel Crenna

无法解决在IIS7下运行的MVC 2应用程序的“UnauthorizedAccessException”

  •  2
  • Daniel Crenna  · 技术社区  · 14 年前

    我们在应用程序中使用访问system.file.io的mvc控制器,它们在本地主机(基于iis 6.0的cassini)中运行良好。部署到iis7时,我们无法让控制器工作,因为它们会抛出未经授权的访问异常。

    为了解决这个问题,我们做了以下工作: -将网络服务和iusr帐户设置为对相关文件和文件夹具有权限 -确保应用程序池在网络服务下运行并加载用户配置文件 -应用程序正在完全信任下运行 -我们尝试将模拟添加到web.config并授予网络服务写入权限(这不是一个好主意,因为这不是我们想要做的)

    现在,我们在获取UnauthorizedAccessException和一个IIS7 404页面之间切换,该页面表明路由被完全忽略(例如,当物理文件实际位于/content/images/favicon.ico时,我们通过控制器提供“/favicon.ico”)。我们使用processmonitor试图跟踪问题,但没有成功。

    更新:

    这个问题是 间歇的 . 我们有几分钟的时间,在那里一切正常,没有做任何配置更改。我们在ec2上运行,所以这可能与分布式文件系统有关。我们还使用单独的驱动器来存储所有网站数据,而不是使用inetpub/wwwroot。

    更新2:

    该站点在iis 7.5下运行时没有发生意外,不需要进行配置更改,但这可能是由于使用新的apppoolidentity运行所致。否则就是一个相同的部署。很遗憾,我们无法在此EC2实例上运行R2。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Naveen    14 年前

    识别原因的方法之一是使用sysinternals中的procmon工具

    procmon将显示无法打开文件的原因,还将显示谁持有该文件。

        2
  •  0
  •   Daniel Crenna    14 年前

    问题是我们使用的控制器工厂没有正确处理文件请求。