2011-05-05 80 views
9

我已將網站升級到.Net4,但在請求.cshtml文件(即使它是純粹的沒有剃鬚刀的html)時,我收到Connection refused錯誤。少了什麼東西?IIS 6完全需要爲cshtml頁面提供服務嗎?

更新:改變了一些東西,現在我得到「這種類型的頁面沒有提供」錯誤。我認爲.Net4是所有必需的。

回答

8

原來,這僅僅是在bin目錄中有正確的文件和在web配置中有條目的問題。以下是文件列表:

  • Microsoft.Web.Infrastructure.dll
  • NuGet.Core.dll
  • System.Web.Helpers.dll
  • System.Web.Razor.dll
  • System.Web.WebPages.Administration.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.We b.WebPages.Razor。DLL

,這裏是我需要在web.config中的內容:

<compilation> 
    <assemblies> 
    <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
    <buildProviders> 
    <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/> 
    </buildProviders> 
</compilation> 
+0

這就是所謂的bin部署從它的外觀。要讓服務器工作而不這樣做,您需要安裝MVC 3.0 – TheAlbear 2011-05-10 09:27:36

+0

另外,我必須將.cshtml添加到IIS中的應用程序擴展。 – 2013-08-06 17:39:30

1

結賬this post

  1. 打開IIS管理器
  2. 您的網站上點擊右鍵 - >管理網站 - >高級設置
  3. 記下的應用程序池正在使用和取消「Advnaced設置」對話框
  4. 現在選擇在左側導航欄中雙擊應用程序池,然後雙擊步驟3中記下的應用程序池並將.net框架版本更改爲4.0
1

應該通過應用正確的應用程序池請確保您沒有在新的.Net 4.0應用程序池上運行任何.Net 2 /3/3.5站點,否則您將收到錯誤消息。我會建議製作一個新的.Net 4.0應用程序池,然後將您的新網站設置爲此。

哦,讓IIS6運行.net 4你需要遵循這個guide

也有可能文件類型不爲IIS所知。在這種情況下,您需要將其添加到映射中(這也允許您創建自定義擴展)。

選擇您的網站>主目錄>配置(按鈕)>,然後插入一個新的映射。地圖.cshtm到c:\ windows \ microsoft.net \ framework \ v4.0.30319 \ aspnet_isapi.dll限制爲GET,HEAD,POST,DEBUG

如果您需要添加映射大部分安裝.net 4 hasn工作不正常,你需要添加所有的映射。

3

除了.NET 4.0,您需要擁有正確的.dlls for razor。如果您安裝了Visual Studio 2010 SP1,則可以右鍵單擊您的Web項目並選擇Add Deployable Dependencies。這將在您發佈網站時將所需的.dll文件複製到bin文件夾中。如果您尚未安裝SP1,則需要手動配置要發佈的.dll文件。 This後有一個很好的記錄hw做到這一點。

+0

看到我的帖子後,看到了這個答案。謝謝 - 鏈接基本上確認我來到的結論,但我發現我也需要NuGet.Code.dll出於某種奇怪的原因。並且鏈接沒有提到我部署所需的web.config條目。 – Graeme 2011-05-06 08:55:02

2

對於我來說,得到IIS 8服務.cshtml網頁只是選擇的問題的正確Windows功能來安裝在Windows 8上。

從控制面板搜索「功能」。然後點擊「打開或關閉Windows功能」。當然,你必須有「Internet信息服務檢查(安裝)我覺得你還需要考慮檢查:

  • Internet信息服務/應用程序開發功能/ .NET擴展4.5
  • Internet信息服務/應用程序開發功能/ ASP.NET 4.5
  • Internet信息服務/應用程序開發功能/ ISAPI擴展
  • Internet信息服務/應用程序開發功能/ ISAPI篩選器
  • 互聯網信息n服務/應用程序開發功能/服務器端包含

我可能包含一個額外的功能。我知道我遺漏了一些很好的事情,例如記錄和跟蹤來幫助調試。

如果IIS仍然不提供Razor語法頁面(.cshtml),然後查找更多的IIS功能來安裝,因爲我認爲我所要做的就是選擇正確的IIS功能。

我犯的另一個錯誤是爲網站設置綁定,我想我應該在Host框中輸入一個名字。但是這使得IIS能夠通過互聯網訪問該網站,只要它能夠找到它即可。因此,對於簡單的設置,請將主機留空。網站名稱在別處處理。其他地方就是域名註冊商的域名服務器(DNS)。

所以,除了考慮其他答案之外,這個答案可能有所幫助。