6

我有一个主机,在那里我托管了一个带有.cshtml扩展名的网页。我的主机是提供 ASP 和 .NET 托管的arvixe.com,但是当我尝试加载我的网页时,我收到此错误消息。

“/”应用程序中的服务器错误。

不提供此类页面。

说明:您请求的页面类型未提供服务,因为它已被明确禁止。扩展名“.cshtml”可能不正确。请查看下面的 URL 并确保其拼写正确。

请求的 URL:/samples/WoT/Default.cshtml

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.276

我读了一些东西我必须在我的 web.config 文件中写一些东西才能让它像这样工作

<compilation>
  <assemblies>
    <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
  <buildProviders>
    <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
  </buildProviders>
</compilation>

但是我尝试了所有方法,将其粘贴在不同的行上,但没有任何效果。我错过了什么或做错了什么?

4

3 回答 3

8

我相信您没有使用 MVC 功能并试图仅加载视图外部的剃刀视图或自定义区域文件夹。

然后您需要在 Web.config 中启用网页键,该键在 .Net 4.0 中默认禁用

<add key="webpages:Enabled" value="true" />
于 2013-02-14T11:25:29.927 回答
2
<appSettings>
<add key="webpages:Enabled" value="true" />

于 2014-06-18T17:40:16.867 回答
1

使用 IIS 10 在 Windows 10 Pro 中修复此问题是一场噩梦,花了两天时间,但我终于能够使用以下过程达到预期的结果:

  1. 在 Visual Studio 中打开您的网站。您执行此操作的方法是转到文件 > 新建 > 网站,然后选择ASP.Net 空网站,然后在单击确定之前将位置更改为您的项目位置。就我而言,我的项目在C:\inetpub\wwwroot\AspNet\Projects\Test

  2. 打开 Internet 信息服务管理器(单击“cortana”搜索并键入 IIS,只要您安装了它,它就会显示出来)。在ServerName > Sites > Default Web Site > ...下找到您的项目文件夹,右键单击它并单击“转换为 Web 应用程序”按钮。在大多数情况下,通过单击“确定”在提示符处接受默认值就足够了。

  3. 使用以下 Web.Config 文件或类似文件。NuGet 可能会覆盖某些设置,但这不是一个大问题。

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=301879
  -->
<configuration>
  <appSettings>
    <add key="webPages:Version" value="3.0.0"/>
    <add key="webpages:Enabled" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    </assemblyBinding>
  </runtime>
</configuration>

  1. 删除您的bin文件夹和packages.config文件(如果存在)。这是因为我们必须假设该 bin 文件夹中的某些内容已损坏,因为 IIS 旨在运行 Razor/ASP。在您的 Visual Studio 项目中,您需要刷新您的项目,以便它知道这些文件已被删除。这可以通过单击解决方案资源管理器框架顶部菜单中的刷新按钮来完成。在您的 Visual Studio 项目中,转到工具 > NuGet 包管理器 > 包管理器控制台并输入以下两个命令。

    安装包 Microsoft.AspNet.Razor -Version 3.0.0

    安装包 Microsoft.AspNet.WebPages

这足以让 IIS 10 在 Windows 10 Pro 上呈现 *.cshtml 页面。

于 2016-09-20T10:33:10.230 回答