2012-08-31 96 views
0

好吧,所以作爲一家公司,我們在Web服務器上部署了我們的第一個MVC3應用程序。已成立了處理.NETMVC3加載啓動頁面錯誤

服務器使用Windows Server 2008和IIS 7

然而,當我們將瀏覽器指向我們收到此錯誤的URL。

目錄列表被拒絕 此虛擬目錄不允許列出內容。

當我們將它指向一個已知路徑,例如:

http://websitename/subfolder/subfolder/Views 

我們得到了同樣的錯誤。顯然,當WW嘗試直接去剃刀頁面,例如:

http://websitename/subfolder/subfolder/Views/Pages/Index.cshtml 

正如你所期望它下載.cshtml文件,因爲瀏覽器無法讀取.cshtml,它讀取html的生成的。

如果我指出:

http://websitename/subfolder/subfolder/Views/Pages/Index.html 

它不能發現任何東西。

它通過Visual Studio在本地主機上運行。並在發佈時,啓動頁面只是根,它運行並通過VS指向正確的位置。

我的問題是您如何手動指向在Web服務器上生成的html,或者當我剛剛訪問服務器上的根目錄時是否找不到起始頁的原因?

我已經檢查了IIS並確保將正確的東西設置爲本地副本'true',並且我還爲我的web.config文件添加了runAllManagedModulesForAllRequests =「true」。

任何幫助或正確的方向點將不勝感激。

+0

服務器操作系統的版本是什麼來定義這樣的事情和IIS您正在使用? – Marc

+0

使用IIS6?閱讀此:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx – robasta

+0

我們正在使用Windows Server 2008和iis 7. – Bohdi

回答

1

看來你還沒有安裝.NET 4. 請你澄清你的服務器設置,如操作系統,IIS版本等?

+0

澄清在原始文章在頂部。 – Bohdi

+0

由於您使用的是mvc3,因此安裝了.NET 4? – AndreCruz

+0

剛剛檢查,然後在服務器上的asp.net 3.5,這是問題嗎? – Bohdi

0

由於某些原因,請求不會從IIS轉到ASP.Net運行時。根據您使用的IIS版本(這也取決於您使用的服務器操作系統),此配置有所不同(或根本不需要)。在MVC-Routing的一些舊版本的IIS(例如版本)中,你必須爲你的所有路由添加一個.aspx(或任何其他擴展名)(請參閱Global.asax),然後配置IIS以將所有.aspx請求路由到ASP.Net子系統。較新版本的IIS並不需要所有這些。

從MS下面的教程可以幫助: http://www.asp.net/mvc/tutorials/older-versions/deployment/using-asp-net-mvc-with-different-versions-of-iis-cs

2

在MVC中,你不通過瀏覽器訪問視圖,您可以訪問控制器上的行動,他們又將返回一個視圖。

所以,你應該嘗試訪問

http://websitename/controller/action 

控制器部分是「控制器」有點控制器的名稱投擲關底,例如訪問上的AccountController一個登錄動作,你會去

http://websitename/Account/Login 

你的行動應在控制器

public ActionResult Login(string username, string password) 
+0

好吧,所以我有一個名爲PagesController.cs的控制器,並且作爲其CRUD,它具有「編輯」操作。但是,當我嘗試訪問http://www.websitename/subfolder/subfolder/Pages/Edit時,我沒有看到那個錯誤,而是得到了'this page can not be found'404頁面。 – Bohdi

+0

是websitename /子文件夾/子文件夾的應用程序的根?通常它只是websitename /。對404s進行排序依賴於IIS版本,所以其他答案可能會有所幫助。 – joocer