在IIS全球范围内提供.cshtml文件

时间:2017-11-18 02:04:36

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5

我正在尝试将Intranet IIS 8.5(Win8.1)设置为全局提供.cshtml(Razor)文件。相应的应用程序池设置为v4.0

文件是简单的网页,而不是MVC。以下是一个例子:

<html>
<body>
@foreach (var i = 0; i < 10; i++)
{
   <li>Item @i</li>
}
</body>
</html>

通过在IIS服务器的处理程序映射上删除.cshtml文件到System.Web.ForbiddenHandler的映射,我能够超越ASP.NET的最初障碍告诉我< / p>

  

不提供此类型的文件。

但是,.cshtml文件现在逐字地提供给浏览器,而不是通过Razor渲染过程运行。

有人会认为从IIS提供Razor页面应该很容易,但事实并非如此。我需要以某种方式说服IIS将这些页面解释为Razor视图;我怀疑我错过了一些映射到适当的处理程序(我不想要MVC - 只是简单的网页)。

以下是一些其他限制因素:

  • 我肯定希望避免在服务器上的每个站点中包含一个bin文件夹和必需的Razor程序集。服务器托管了许多站点,我不想在任何地方复制bin文件夹。应该可以全局配置它,一劳永逸。

  • 理想情况下,我甚至不需要为每个网站提供本地web.config。正在投放的网站是技术拼凑而成,包含.html.shtml.php.asp.aspx,以及 - 希望 - {{1文件,不应该依赖于单一技术或配置。

  • 创建Visual Studio项目显然是不可能的。我应该可以使用任何文本编辑器来修改.cshtml文件。

  • 计算机上未安装.NET Core,因此无法选择。必须使用最高4.6.2的完整框架。

我知道许多其他类似的问题,但并不能完全解决我的问题。

例如,

This question在被解答之前被关闭为“不清楚”,但我很清楚!我遇到了同样的问题。

this question的接受答案只是转向复制bin文件夹。这是我特别不想做的事情。

This answer表示可以运行MVC应用程序,而无需在服务器上安装MVC ,再次将.cshtml文件夹复制到本地根目录中。我想要在我的服务器上全局安装Razor(但不一定是MVC)。

基本上,我想要做的就是使用Razor语法,让人想起传统的ASP或ASPX,而没有MVC的包袱。

可以吗?

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找的是一个名为ASP.NET网页的功能。如果使用ASP.NET Core 2.0,则最新的新项目模板使用Pages,而不是控制器和视图。我从未阅读this doco,但我想它应该可以帮助您入门(或者只是从新项目向导创建一个ASP.NET Core 2.0项目)