[英]mvc routing generates iis 7.5 error forbidden
我的 WebApplication 我在這里有一個 ASPX WebForms 頁面:
~/ASPWebforms/MyFolder/Default.aspx
如果我使用此代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute(
"SomeRoute",
"Test/{reportname}",
"~/ASPWebforms/MyFolder/{reportname}.aspx"
);
然后在瀏覽器中輸入:
本地主機/我的站點/測試/默認
我得到了想要的結果:顯示頁面 ~/ASPWebforms/MyFolder/Default.aspx。
但是如果我使用下面的代碼
routes.MapPageRoute(
"SomeRoute",
"Test/",
"~/ASPWebforms/MyFolder/Default.aspx"
);
並嘗試
本地主機/我的站點/測試
IIS 7.5 說:
HTTP 錯誤 403.14 - Forbidden Web 服務器配置為不列出此目錄的內容。
我在最后一段代碼中做錯了什么嗎?
提前謝謝!
我有很多這樣的事情,從閱讀周圍來看,它似乎可能是由幾種不同的事情引起的。 就我而言,我有一條這樣的路線:
routes.MapPageRoute("signin", "signin", "~/SignIn/SignIn.aspx")
所以路由路徑是/signin
,但還有一個名為/signin
的文件夾,其中包含 .aspx 頁面。
我收到錯誤響應HTTP Error 403.14 - Forbidden. The Web server is configured to not list the contents of this directory
HTTP Error 403.14 - Forbidden. The Web server is configured to not list the contents of this directory
。
當我將此行添加到路由配置時,此問題已修復:
routes.RouteExistingFiles = true;
錯誤消息有一定道理: /signin
是一個目錄,Web 服務器配置為不列出其中的文件。 除非您以其他方式配置,否則此文件路徑似乎優先於路由。
我嘗試過的其他事情:
MapPageRoute
重載UrlRoutingModule
添加到system.webServer|Modules
下的 web.config 中。 沒有它就可以工作。<modules runAllManagedModulesForAllRequests="true">
由於其他原因我確實有這個,但如果我刪除它,那么這個修復仍然有效。Server Manager|Web Server|Add Role Services
對話框中安裝了服務器功能“Http 重定向”,但再次將其刪除后,這仍然有效。在 IIS 7.5 上重新安裝 .NET 4 x86 & x64 並設置您的網站 .net 版本。 默認情況下,我編寫簡單的命令 x86。
停止 IIS: 1) iisreset /stop
Stup 命令(默認為 iis .net stup):2) cd %windir%\\Microsoft.NET\\Framework\\v4.0.30319 3)aspnet_regiis.exe -i
重置命令(對於 iis,通過 defalt .net 更改為 .net 4 版本):4)aspnet_regiis.exe -iru
啟動 IIS: 5)iisreset /start
嘗試使用設置默認值的重載之一來設置路由,如下所示:
routes.MapPageRoute(
"SomeRoute",
"Test/{reportname}",
"~/ASPWebforms/MyFolder/{reportname}.aspx",
false,
new RouteValueDictionary(new {reportname = "Default"})
);
不是很有信心它會解決您的問題,但與您的原始示例一起使用它可以很好地完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.