在我的MVC3项目的最后几个月里,我在剃刀视图上得到一个随机访问被拒绝错误。在大多数情况下,我没有对视图进行过一次更改,在最近的情况下,MVC项目也没有改变。
mvc应用程序托管在Azure中,只有在开发结构中运行时才会发生访问被拒绝错误。如果我要发布到云,则可以访问这些页面。
我没有任何重现此步骤的步骤。我发现修复它的唯一方法就是遵循以下步骤:
我在网站运行时查看了IIS管理器,看来受影响的文件存在并且与其他未受影响的文件具有相同的权限。
是什么给出的?
更新:我刚刚在同一解决方案中遇到了与WCF服务(.svc)相同的问题(不同于MVC项目的项目)。这次重新创建文件技巧不起作用。我检查了subversion中的代码到一个新的工作目录,现在它再次工作。这必须是IIS或Azure计算模拟器的东西。
异常看起来像这样......
System.UnauthorizedAccessException:访问路径 'C:\用户\布雷特\软件\工作\干线\ Project.Web \查看\作业\ _Assignment.cshtml' 被拒绝。
Generated:Mon,09 Jan Jan 20:55:00 GMT
System.UnauthorizedAccessException:访问路径 'C:\用户\布雷特\软件\工作\干线\ Project.Web \查看\作业\ _Assignment.cshtml' 被拒绝。在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO.FileStream.Init(String path,FileMode 模式,FileAccess访问,Int32权限,布尔useRights,FileShare share,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy,Boolean useLongPath)
在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess 访问,FileShare共享,Int32 bufferSize,FileOptions选项,字符串 System.IO.FileStream..ctor中的msgPath,Boolean bFromProxy(String 路径,FileMode模式,FileAccess访问,FileShare共享)at System.Web.Hosting.MapPathBasedVirtualFile.Open()at System.Web.Compilation.BuildProvider.OpenReader(VirtualPath virtualPath)at System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode()
在System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() 在 System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)
我截断了堆栈跟踪,它非常大。如果有人想要休息,我可以提供。
答案 0 :(得分:2)
如果您从本地IIS而不是VS开发人员服务器上运行应用程序。
您需要确保IIS_IUSRS具有read& amp;对文件执行权限。