Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MvcSiteMapProvider-不生成sitemap.xml_C#_Asp.net Mvc_Asp.net Mvc 4_Sitemap_Mvcsitemapprovider - Fatal编程技术网

C# MvcSiteMapProvider-不生成sitemap.xml

C# MvcSiteMapProvider-不生成sitemap.xml,c#,asp.net-mvc,asp.net-mvc-4,sitemap,mvcsitemapprovider,C#,Asp.net Mvc,Asp.net Mvc 4,Sitemap,Mvcsitemapprovider,编辑:我的Routeconfig.cs似乎有问题。当我删除除最基本的路由之外的所有内容时,我可以找到我的sitemap.xml。我会调查一下,然后给你一个答案 - 我已经通过Nuget在我的MVC4项目中安装了MvcSiteMapProvider.MVC4 我的Mvc.sitemap看起来像这样(这是我通过Nuget获得的) 一切都编译得很好,我没有对代码做任何其他修改 但是当我转到localhost:xxxx/sitemap.xml时,我找不到任何文件(找不到资源)。我的印象是,这将是开箱即用

编辑:我的Routeconfig.cs似乎有问题。当我删除除最基本的路由之外的所有内容时,我可以找到我的sitemap.xml。我会调查一下,然后给你一个答案

-

我已经通过Nuget在我的MVC4项目中安装了MvcSiteMapProvider.MVC4

我的Mvc.sitemap看起来像这样(这是我通过Nuget获得的)

一切都编译得很好,我没有对代码做任何其他修改

但是当我转到localhost:xxxx/sitemap.xml时,我找不到任何文件(找不到资源)。我的印象是,这将是开箱即用的。我错过什么了吗


MvcSiteMapProvider所做的其他事情,比如@Html.MvcSiteMap().SiteMap()工作得很好,但它只是不生成SiteMap.xml。

我的RouteConfig.cs文件中有一个格式错误,MVC路由解析器在到达关键代码之前就停止了:

MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(路由)

确保您的RouteConfig.cs没有中途停止,应该可以


所以这都是我的错。

实际上,当使用v4.0.14或更高版本(以及内部DI容器)时,您不需要在配置中包含这一行,因为它现在是自动完成的。好的,这很好。我还没有测试,但我怀疑它会工作,因为我修复了我的RouteConfig。
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">

  <mvcSiteMapNode title="Home" controller="Home" action="Index">
    <mvcSiteMapNode title="About" controller="Home" action="About"/>
  </mvcSiteMapNode>

</mvcSiteMap>
MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes);