【问题标题】:.cshtml files displaying as plain html.cshtml 文件显示为纯 html
【发布时间】:2013-11-11 23:45:30
【问题描述】:

我在设置托管在 Windows Server 2012 上的网站时遇到问题。该网站只是您在设置新的“ASP.NET 网站 (Razor v2)”网站时获得的默认网站。然后我只是使用 VS2012 中的“发布网站”选项发布它。我还在 MIME 类型中添加了 .cshtml 扩展名。服务器正在运行 IIS v8 和 .NET v4。问题是当我访问该网站时,它是这样显示的:

http://i806.photobucket.com/albums/yy341/SamuelCB/Razor%20Error/Untitled.png

我有什么遗漏吗?

【问题讨论】:

  • 你还需要添加 .cshtml MIME 类型吗?
  • 您在浏览器中使用哪个 URL 来查看该页面?
  • @RowanFreeman 我一开始没有尝试过,但出现以下错误: HTTP 错误 404.3 - 未找到 由于扩展配置,无法提供您请求的页面。如果页面是脚本,则添加处理程序。如果应该下载文件,请添加 MIME 映射。
  • 这听起来像网络服务器没有正确配置来处理你的要求。 Web 服务器是否托管其他应用程序?它是否托管其他 ASP.NET 和/或 MVC 应用程序?什么.NET 框架?什么 IIS 版本?尝试将您的问题编辑得非常彻底;你做了什么,你采取的步骤,关于你的服务器的信息。
  • @RowanFreeman 我已编辑问题以包括 IIS 版本和 .NET 框架版本。正如它所说,它是 IIS 8 和 .NET v4。这一切都是从 Windows Server 2012 的新设置运行的。该网站可以很好地托管其他 ASP.NET 网站,但不能使用 Razor 引擎托管 MVC4。

标签: asp.net asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

要检查的项目:

  • 如果正确安装了 IIS ASP.Net,MIME 类型实际上并不重要

    • 不要误解这句话,我并不是说 MIME 类型无关紧要,只是如果/当所有这些配置正确时,IIS/ASP.Net 是“开箱即用”的无需使用 MIME 类型。

    • 手动添加“.cshtml”的问题是 IIS(现在)将提供它,但 ASP.Net 引擎没有(必须“在那里”)处理它(例如集成模式)。这就是为什么您会看到文件的“未解析”(原始)版本......代码和所有......都是 IIS(没有配置 ASP.net 引擎来处理它)。

  • 如果您运行自己的机器,请运行Web Platform Installer - 它应该让您了解已安装的内容与未安装的内容。注意 ASP.Net 位和版本。您可能需要(re)register ASP.Net

  • 如果您是托管的,仅仅因为您的主机安装了 .Net Framework 4.x并不意味着他们拥有所有的 >ASP.Net 也已安装。 向您的主人寻求指导,而不是进行猜谜游戏。我经常不得不“加载”我的开发机器“默认”拥有的东西(当然它是我的机器),因为当我部署到我的主机时,我最终得到了不起作用的东西。您甚至没有遇到 ASP.Net 引擎错误,因此这是 ASP.Net 需要一些工作的明确信号。

    • Nuget 非常适合这项任务。一些可能需要“bin 部署”的项目(又名。您必须将它们添加到部署/上传到主机上的 /bin 目录):
      • Microsoft ASP.NET Razor
      • Microsoft ASP.NET 网页
      • Microsoft.Web.Infrastructure

不相关:这听起来更像是应该去ServerFault,而不是这里...我不介意...但社区可能会有不同的想法...您甚至可能会得到更好的答案.. ..

第...

【讨论】:

  • 感谢您的帮助。我安装了 Web Platform Installer,安装了“IIS:ASP.NET 4.5”,然后在 IIS 管理器中将应用程序池更改为 .NET v4.5。再次感谢!
猜你喜欢
  • 2013-05-19
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
相关资源
最近更新 更多