asp.net-mvc-3 - 访问 Razor View 被拒绝

标签 asp.net-mvc-3 razor azure

在我的 MVC3 项目的最后几个月中,我在 Razor View 上遇到了随机访问被拒绝的错误。在大多数情况下,我没有对 View 进行任何更改,并且在最近的情况下,MVC 项目也没有更改。

mvc 应用程序托管在 Azure 中,并且仅在开发结构中运行时才会发生访问被拒绝错误。如果我要发布到云端,就​​可以访问这些页面。

我没有任何重现此问题的步骤。一旦发生这种情况,我发现解决该问题的唯一方法是按照以下步骤操作:

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

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

什么给了?

更新:我刚刚在同一解决方案中的 WCF 服务 (.svc) 中遇到了同样的问题(尽管项目与 MVC 项目不同)。这次重新创建文件的技巧不起作用了。我将代码从 subversion 中检查到了新的工作目录,现在它又可以工作了。这必须与 IIS 或 Azure 计算模拟器有关。

异常看起来像这样......

System.UnauthorizedAccessException: Access to the path 'C:\Users\Brett\App\Working\trunk\Project.Web\Views\Assignments\_Assignment.cshtml' is denied.

Generated: Mon, 09 Jan 2012 20:55:00 GMT

System.UnauthorizedAccessException: Access to the path 'C:\Users\Brett\App\Working\trunk\Project.Web\Views\Assignments\_Assignment.cshtml' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.Web.Hosting.MapPathBasedVirtualFile.Open() at System.Web.Compilation.BuildProvider.OpenReader(VirtualPath virtualPath) at System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode()
at System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)

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

最佳答案

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

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

关于asp.net-mvc-3 - 访问 Razor View 被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795234/

相关文章:

javascript - Kendo UI 多个文件上传问题

asp.net - Visual Studio 2013 Update 2 无法打开 cshtml

c# - Azure 应用服务未经授权的用户访问 Controller

.net - Azure 中的 ASP.Net 应用程序缓存

html - 如何使用 MVC 3 在 IE6 中将文本放在图像旁边

c# - 在 C# 中将文件夹从一个驱动器移动到另一个驱动器

asp.net-mvc-3 - 对由 javascript MVC3 创建的元素进行不显眼的 jQuery 验证

asp.net-mvc - 在 ASP.NET MVC 中持久化非表单模型数据

jquery - 从模态中检索 html 并通过脚本将其转换为字符串

azure - Terraform - 如何查找用于网络对等互连的 Azure Kubernetes AKS vnet ID