2012-12-05 17 views
0

我已經看到這個代碼在這個網站上噸,但我似乎無法得到它的工作。當我導航到www.mysite.com/sitemap.xml時,它給我一個404錯誤。這裏是我的RouteTable設置代碼:RouteTable重定向的SiteMap

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.Clear(); 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.RouteExistingFiles = true; 

     routes.MapRoute(
      "Sitemap", 
      "sitemap.xml", 
      new { controller = "Home", action = "SiteMap" } 
     ); 

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

這裏是在Global.asax:

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 

    WebApiConfig.Register(GlobalConfiguration.Configuration); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 

會有人請指出我做了什麼錯?它看起來像C# mvc3 redirect sitemap.xml to controller action這樣的問題中給出的例子。

+1

發現這個較短的版本把它放在調試和檢查它實際上是試圖路由到.. –

+0

我不知道你可以調試路由。我會在哪裏放置中斷點? – Middas

+0

我的意思是網站..它顯示404錯誤或.NET'無法找到視圖/路線'的錯誤頁面? –

回答

1

經過更多的嘗試和錯誤的處理程序玩,我能夠得到它的工作。事實證明,StaticFile處理程序確實是問題。我能夠通過添加修復它下面到我的web.config文件:

<handlers> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit_XML" path="*.xml" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit_XML" path="*.xml" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0_XML" path="*.xml" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
2

您也可以使用this answer

<handlers> 
<add name="xml-file-handler" path="*.xml" type="System.Web.UI.PageHandlerFactory" verb="*" /> 
</handlers> 
+0

感謝分享! – keun