我正在运行64位计算机。我的应用程序池被配置为使用NETWORK SERVICE。当它运行在64位模式下时,我的应用程序运行良好。使用Enable32BitAppOnWin64的IIS权限问题
当以32位模式运行(应用程序池上的标志Enable32BitAppOnWin64)时,我经常会遇到IIS无法访问它的临时文件夹的权限错误。如果我更改web.config中的tempDirectory,则问题会暂时解决。在我对应用程序进行另一次更改之后,它会经常返回。
实施例时tempDirectory = “C:\ TEMP \ iistemp4” 访问路径 'C:\ TEMP \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \的ResX \ header.ascx.resources' 被拒绝。 ---> System.UnauthorizedAccessException:访问路径'c:\ temp \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \ ResX \ header.ascx.resources'被拒绝。
显然,网络服务可以访问该文件夹,因为它实际上创建了它。恢复到64位模式可解决此问题。
进程监视器显示: 12:40:47.7314293 PM的w3wp.exe 6184的CreateFile C:\ TEMP \ iistemp4 \ tbmpos \ a93ceaf9 \ c953db72 \的ResX \ header.ascx.resources拒绝访问所需的访问:通用写,读属性,处理:OpenIf,选项:同步IO非警报,非目录文件,打开否调用,属性:n/a,ShareMode:无,AllocationSize:0
这是我可以看到的唯一访问在进程监视器中。
但是,如果我使用Windows资源管理器打开文件夹,我会在Information:Owner,DACL和Owner,Group,DACL上获得一些'BUFFER OVERFLOW'。 IIS是否以不正确的权限创建文件?
任何想法?
我也有这些配置选项,以防万一:batch =“false”optimizeCompilations =“true” – 2011-04-26 16:54:21