【问题标题】:Using Razor with just ASP.NET Hosted on IIS (Not MVC)将 Razor 与仅托管在 IIS(非 MVC)上的 ASP.NET 一起使用
【发布时间】:2014-04-22 11:47:21
【问题描述】:

我正在尝试在没有 MVC 的情况下使用 Razor。我创建了一个新的 ASP.NET 空 Web 应用程序,然后安装了以下包:Microsoft.AspNet.Razor

然后我在我的目录的根目录中有一个Index.cshtml,但是当我启动该站点时,我收到以下错误:

HTTP Error 403.14 - Forbidden
A default document is not configured for the requested URL, 
    and directory browsing is not enabled on the server.

如果我添加一个 Index.html 文件,它可以正常工作,但我想使用 Razor。我需要做任何额外的配置吗?我的web.config 看起来像这样:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
  </system.web>

  <runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
    </assemblyBinding>

  </runtime>
</configuration>

我正在使用 Visual Studio 2013 和 IIS Express 8

注意

我所做的只是创建一个新的空 Web 应用程序,未选中 Web API、Web 表单、MVC,没有身份验证。

已安装:Microsoft.AspNet.Razor 通过 nuget。

在根目录下创建Index.cshtml 页面并在本地启动站点以重现错误。

【问题讨论】:

  • 陈述你的目的?是为了完整的网页生成还是使用模板之类的东西来生成文档(比如html文档)?
  • 好吧,如果你想从马口中听到它:stackoverflow.com/a/5266583/145682
  • 并不是因为他们在谈论在 .aspx 页面中使用 Razor 语法 (@),而我只是希望 IIS 呈现呈现为 html 的 .cshtml 页面?
  • @TrueBlueAussie Razor syntax 并不“需要”控制器——正如 BillBaffBoff 所说...
  • 我明白你的意思,但添加整个 MVC 框架只是为了让剃须刀工作似乎有点冗长..

标签: asp.net iis razor


【解决方案1】:

HTTP 错误 403.14 - 禁止 未为请求的 URL 配置默认文档, 并且服务器上没有启用目录浏览。

上述内容比“Razor”sytnax 更能说明 IIS/ASP.Net 问题。您配置的站点是否有 ASP.Net(启用?)、AppPool(.net 4)等? index.html 起作用的原因是 IIS 将很乐意提供它只是一个 html 页面,而 csthtml(或 aspxvbhtml)是 应用程序具体的 (ASP.Net)。

【讨论】:

  • 我没有在 WebForms 或 MVC 中使用 Razor,目前它只是一个带有 1 个文件 (Index.cshtml) 的空 ASP 站点,当我使用 Visual Studio 13 在 IIS Express 中运行它时我明白了错误
  • @BiffBaffBoff - 您的意思是在 VS 中“使用 IIS Express”或其他方式(例如手动创建 IIS 站点)?如果您明确浏览index.chtml,会发生什么?
  • 是的,VS 中的 IIS Express。当我浏览/Index.cshtml 时,它说服务器不允许显示该文件类型。我让同事在他们的机器上尝试这个,他们都得到了同样的错误。
  • @BiffBaffBoff 这表明您的“站点”未设置为处理 cshtml 文件(IIS/ASP.net 设置和/或所需的程序集)。您的/bin 文件夹是否有necessary dlls to handle
【解决方案2】:

查看我的回答here。您的问题可能与您的资源映射有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2012-04-02
    相关资源
    最近更新 更多