2017-11-18 378 views
0

我想安装Intranet IIS 8.5(Win8.1)全球服务.cshtml(Razor)文件。相应的应用程序池设置为v4.0IIS上全球服务.cshtml文件

这些文件是简单的网页,而不是MVC。这里是一个示例:

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

通过在IIS服务器的处理程序映射去除.cshtml文件映射到System.Web.ForbiddenHandler我能闯过ASP.NET的初始障碍告诉我,

不提供此类型的文件。

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

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

这里有一些额外的限制:

  • 我肯定会想避免,包括在每个服务器上的网站所需的剃刀组件上bin文件夹。服务器托管许多网站,我不想在任何地方复制bin文件夹。应该可以全局配置它,一劳永逸。

  • 理想情况下,我甚至不需要每个站点的本地web.config。正在服务的网站是技术拼凑而成的,其中包含.html,.shtml,.php,.asp,.aspx和 - 希望为 - .cshtml文件,并且不应该依赖于单个技术或配置。

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

  • .NET Core未安装在机器上,不是一个选项。必须使用4.6.2以上的完整框架。

我知道很多其他的问题是类似的,但不能解决我的问题。

This question例如,在它可能已被回答之前被关闭为“不清楚”,但它对我来说很清楚!我现在正在遇到一模一样的问题。

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

This answer说你可以不通过复制bin文件夹到本地根服务器上安装MVC,再次运行MVC应用程序。我想想要在我的服务器上全局安装Razor(但不一定是MVC)。

本质上,我试图做的是使用Razor的语法,让人联想到经典的ASP或ASPX,而没有MVC的包袱。

可以这样做吗?

回答

0

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

+0

对不起,应该早些时候澄清:没有核心,只有完整的框架。 – Optimax

+0

核心也运行在IIS上,所以我不知道为什么这么多人不能/不愿意使用它。但Pages最初是为完整的框架ASP.NET开发的(查看链接),所以它也可以在那里使用。 – Ziv