2017-11-18 273 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