【问题标题】:Access to razor view denied访问剃刀视图被拒绝
【发布时间】:2012-02-06 09:21:41
【问题描述】:

在我从事 MVC3 项目的最后几个月里,我在 razor 视图上遇到随机访问被拒绝错误。在大多数情况下,我没有对视图进行任何更改,在最近的情况下,MVC 项目也没有更改。

mvc 应用程序托管在 Azure 中,只有在开发结构中运行时才会出现拒绝访问错误。如果我要发布到云端,则可以访问这些页面。

我没有任何重现此内容的步骤。一旦发生这种情况,我发现修复它的唯一方法是按照以下步骤操作:

  1. 从受影响的页面复制标记。
  2. 删除文件
  3. 创建一个名称稍有不同的新视图
  4. 将标记粘贴到新文件中
  5. 重建
  6. 将文件重命名为旧名称

我在站点运行时查看了 IIS 管理器,似乎受影响的文件存在并且与其他未受影响的文件具有相同的权限。

什么给了?

更新:我刚刚在同一个解决方案中遇到了与 WCF 服务 (.svc) 相同的问题(尽管项目与 MVC 项目不同)。这次重新创建文件的技巧没有奏效。我将代码从颠覆中检查到一个新的工作目录,现在它又可以工作了。这必须与 IIS 或 Azure Compute Emulator 相关。

异常看起来像这样...

System.UnauthorizedAccessException:访问路径 'C:\Users\Brett\App\Working\trunk\Project.Web\Views\Assignments\_Assignment.cshtml' 被拒绝。

生成:格林威治标准时间 2012 年 1 月 9 日星期一 20:55:00

System.UnauthorizedAccessException:访问路径 'C:\Users\Brett\App\Working\trunk\Project.Web\Views\Assignments\_Assignment.cshtml' 被拒绝。在 System.IO.__Error.WinIOError(Int32 错误代码,字符串 MaybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode 模式、FileAccess 访问、Int32 权限、Boolean userRights、FileShare 共享,Int32 bufferSize,FileOptions 选项,SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
在 System.IO.FileStream..ctor(字符串路径,FileMode 模式,FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项、字符串 msgPath, Boolean bFromProxy) 在 System.IO.FileStream..ctor(String 路径、FileMode 模式、FileAccess 访问、FileShare 共享)在 System.Web.Hosting.MapPathBasedVirtualFile.Open() 在 System.Web.Compilation.BuildProvider.OpenReader(虚拟路径 虚拟路径)在 System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode()
在 System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() 在 System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)

我截断了堆栈跟踪,它非常大。如果有人想要剩下的,我可以提供。

【问题讨论】:

  • 您的 AssignmentsController 是什么样的?或者任何控制器使用此页面并使其崩溃?
  • 您是通过 IIS 访问本地版本,还是只是点击运行按钮并最终到达 127.0.0.1:81
  • 我正在通过托管在 azure dev fabric 中的端点访问它。

标签: asp.net-mvc-3 razor azure


【解决方案1】:

如果您在本地 IIS 而不是 VS 开发者服务器上运行应用程序。

您需要确保您拥有 IIS_IUSRS 才能对该文件具有读取和执行权限。

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2014-05-06
    • 2011-01-18
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多