4

我试图让我的服务器运行 .cshtml 文件。使用 WebMatrix 3,我可以通过右键单击并选择“在浏览器中查看”来查看页面,但通过本地机器端口查看。如果我尝试从 Internet 访问这些页面,则会收到 500 错误。

这是我所做的:

  • 我确保已安装 MVC 3(但我一直在阅读 .cshtml 不需要 MVC ......无论如何我都确定了。
  • 我做了整个“恢复为父”/“恢复为继承”的事情,这在许多博客中都可以找到。
  • 我有一段时间收到 404 错误,所以我在 .cshtml 扩展名中添加了 MIME 类型的“text/html”。这解决了这个问题,但只导致了我的 500 错误。

我怀疑这与我的 web.config 文件有关,因为如果我删除该文件,页面将显示,但它读起来像文本。例如(在我能想到的最基本的页面中):

@{
   var currentTime = dateTime.Now; 
}

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>Testing</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    </head>
    <body>
        The current time is @currentTime .
    </body>
</html>

该页面将呈现如下:

@{ var currentTime = dateTime.Now;}当前时间是@currentTime

然而,我对 web.config 文件中应该或不应该包含什么内容一无所知。为这个问题纠结了将近一个月...

这是 web.config 文件中的内容:

<configuration>     

    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SqlServerCe.4.0" />
            <add invariant="System.Data.SqlServerCe.4.0" name="Microsoft® SQL Server® Compact 4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
    </system.data>
    <appSettings>
        <add key="webPages:Version" value="2.0"/>
        <add key="webpages:Enabled" value="true" />
    </appSettings>

    <system.webServer>
        <httpErrors errorMode="Detailed" />
    </system.webServer>

</configuration>

提前谢谢了。

4

2 回答 2

0

如果我对您的理解正确,您在 IIS(Internet 信息服务 - Windows 上的内置 Web 服务器)中运行它时遇到问题。看起来您所服务的目录未配置为 Web 应用程序(但它配置为虚拟目录)。要解决这个问题:

  1. 打开 IIS 管理器(Win + R 并将 %systemroot%\system32\inetsrv\iis.msc 复制到运行窗口)
  2. 导航到左侧树中的目录(可能是 \Sites\Default Web Site\something
  3. 右键单击它并选择“转换为应用程序”

这些步骤应该使 IIS 至少尝试呈现 .cshtml。

另外,.cshtml(即 ASP.NET MVC)比 .asp(即简单的 ASP.NET)更容易学习和理解

于 2013-08-12T18:26:42.863 回答
0

似乎我有一个旧版本......这是在这里回答的:

CSHTML 仅呈现文本 - 静态页面?

于 2014-11-20T22:27:33.717 回答