簡體   English   中英

IIS中的ASP.NET導航導致目錄而不是.aspx文件

[英]ASP.NET Navigation in IIS Leads to Directory Instead of .aspx File

我正在嘗試將Windows 7的Visual Studio 2013中創建的ASP.NET項目移動到Windows Server 2008的IIS 6.0,並且頁面之間的導航出現問題。

在Visual Studio中,我使用以下命令從“登錄”頁面導航到應用程序啟動的主頁:

Response.Redirect("~/Home.aspx");

在Visual Studio中可以正確加載Home.aspx文件。 但是,當我在IIS中運行此命令時,該命令改為嘗試查找Home文件夾,而不是Home.aspx文件,因此,除非我創建一個Home目錄,否則即使它不會加載Home.aspx文件,它也會返回404錯誤。我將其復制到目錄中。

造成這種差異的可能原因是什么,如何使應用程序在IIS中運行Home.aspx頁?

看起來是路由問題。 您的VS 2013 Web項目是否已創建為ASP.NET MVC網站? 如果是,則可能已向其中添加了一些WebForms aspx頁面,但是為了同時具有MVC和WebForms頁面,必須在App_Start / RouterConfig.cs中調整路由配置:

如果您在RouterConfig.cs的RegisterRoutes()方法中注釋掉此代碼,則可以訪問Home.aspx:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );

如果在保留所有其他頁面的MVC路由的同時僅允許Home.aspx,則必須在route.MapRoute方法調用中更改默認值。

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "<Some Other Controller Name>", action = "Index", id = UrlParameter.Optional } 
        ); 

如果將默認路由的控制器名稱從“ Home”更改為其他名稱,則Home.aspx應該正確加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM