C# 可能的替代位置.net解决方案中可以包含站点地图文件

C# 可能的替代位置.net解决方案中可以包含站点地图文件,c#,.net,asp.net,sitemap,C#,.net,Asp.net,Sitemap,我从一位不再可用的同事那里接管了一个相当大的C#.NET2.0遗留web应用程序。此web应用程序由一个解决方案中的多个项目组成。我遇到了一个我根本不理解的问题,希望这里有人会理解 该应用程序在站点地图子文件夹中包含多个.sitemap文件。到现在为止,一直都还不错。但是我发现一个.sitemap文件在web项目的根目录中浮动,并且没有在应用程序的任何地方使用(它不包括在web.config中) 我排除了这个文件。没有它,web应用程序运行良好。正确加载所有菜单。直到我找到一个使用递归查找某些控

我从一位不再可用的同事那里接管了一个相当大的C#.NET2.0遗留web应用程序。此web应用程序由一个解决方案中的多个项目组成。我遇到了一个我根本不理解的问题,希望这里有人会理解

该应用程序在站点地图子文件夹中包含多个.sitemap文件。到现在为止,一直都还不错。但是我发现一个.sitemap文件在web项目的根目录中浮动,并且没有在应用程序的任何地方使用(它不包括在web.config中)

我排除了这个文件。没有它,web应用程序运行良好。正确加载所有菜单。直到我找到一个使用递归查找某些控件(而不是站点地图!)的方法。此方法从给定点向下运行所有控件,然后由于XMLSitemapProvider缺少此文件而崩溃。此方法被多次调用而没有问题,但当用户注销时,它会以某种方式通过一个层次化的控件路径运行,最终到达丢失的.sitemap文件

文件还需要位于根目录中的这个确切位置。将其移动到其他地方也会导致相同的崩溃

XmlSiteMapProvider所需的文件web.sitemap不存在

我已搜索此文件名和所有“.sitemap”文件,但在解决方案中的任何位置都找不到它。找到0个结果。我已经运行了导致崩溃的所有代码,它似乎是任意的(它与站点地图无关)。崩溃之所以发生,是因为当XmlSiteMapProvider遍历所有控件时,它碰到了正在寻找另一个控件的XmlSiteMapProvider。简而言之,我找不到任何关于这个文件的引用

由于这个web应用程序非常庞大,我无法手动浏览每一段代码。有数十万行代码。是否有人知道通过web.config包含站点地图的其他方法,或者如何注册站点地图文件,以及我应该在哪里查找


最后注意:此应用程序使用本地化。网站地图已经本地化,我找到了这张网站地图的资源。我希望排除这些可以解决问题。不幸的是,它没有。据我所知,您只是排除了根站点地图。请查看以下链接:。
上面写着:

Web.sitemap文件必须位于应用程序根目录中


答案是,当您没有在webconfig中设置默认值时,它将查找此文件名。在您的网络配置中将默认设置为实际定义的站点地图,问题就消失了…

您是否也在数据库、配置文件和xml元数据(如果您有)中搜索了?嗯,这是我遇到的第一个项目。所以,也许这是我自己的经验不足。到目前为止,每当我使用站点地图文件时,它们总是在web.config中特别指定。读了这篇文章,我并没有完全明白,但是如果我理解正确的话,“Web.sitemap”是一个特殊的站点地图?我仍然看不出我正在开发的应用程序实际上是如何需要它的(正如我所说的,我开发的其他应用程序从来都不需要它),并且查看其中的sitemapnodes,它不是最新的。有办法摆脱它吗?