首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET MVC 專案只有 Global.asax 無啟動頁面的解決方案

     編輯:程式設計綜合問答

問題現象

開源 ASP.NET MVC 專案中只有 Global.asax,無傳統 Default.aspx,IIS 設置默認文檔失效,目錄瀏覽也被禁用。

根本原因

ASP.NET MVC 基於路由機制,不依賴物理文件作為入口。入口由路由表決定,默認路由:

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

解決方案

方案一:訪問正確路由(推薦)

直接訪問:https://localhost:port/ 或 https://localhost:port/Home/Index

方案二:檢查視圖文件是否存在

Views/
└── Home/
    └── Index.cshtml   (或 Index.aspx)

確保 Views/Home/Index.cshtml 存在且內容正確。

方案三:配置 IIS 應用程序池

  • .NET CLR 版本:v4.0
  • 托管管道模式:Integrated
  • 啟用 32 位應用程序:視項目而定

方案四:web.config 關鍵配置

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <add name="ExtensionlessUrlHandler-Integrated-4.0"
             path="*." verb="*"
             type="System.Web.Handlers.TransferRequestHandler"
             preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
</system.webServer>

調試步驟

  1. 檢查 Global.asax.cs 中 Application_Start 是否註冊路由
  2. 確認 RouteConfig.cs 被正確調用
  3. 瀏覽器開發者工具查看 404 請求的 URL 模式
  4. 啟用詳細錯誤:<customErrors mode="Off" />
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved