gpt4 book ai didi

asp.net-mvc - sitemap.xml url 返回 404 错误

转载 作者:行者123 更新时间:2023-12-02 07:33:51 25 4
gpt4 key购买 nike

我有一个大型联属营销网站,其中包含在 Windows Azure 上托管的数百万种产品。对于 SEO,我必须提供动态创建的 sitemap.xml。

  public ActionResult SiteMap()
{
string sitemapUrl = "https://trendley.blob.core.windows.net/sitemap/sitemap.xml";

byte[] bImage = null;
using (WebClient wc = new WebClient())
{
bImage = wc.DownloadData(sitemapUrl);
}
return File(bImage, "application/octet-stream");
}

我将以下路由添加到我的 RouteConfig 中:

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

不幸的是,这不起作用。我得到 -> HTTP 错误 404.0 - 未找到

当我将“sitemap.xml”更改为sitemapxml(删除扩展名)时,我的 Controller 方法被调用。已经做了一些研究并使用了我的 web.config,但似乎没有任何效果。

我尝试的第一件事是添加:

<modules runAllManagedModulesForAllRequests="true" />

第二件事:

 <add
name="AdfsMetadata"
path="sitemap.xml"
verb="GET"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />

有人可以告诉我如何完成这个任务吗?我必须为此编写自己的处理程序吗?

干杯,斯特凡

最佳答案

该路由不起作用的原因是因为默认情况下 .xml 由 IIS 中的“StaticFileHandler”处理,因此当请求传入 ASP.net 时不会调用。

选项 1:启用 runAllManagedModulesForAllRequests - 在您的 web .config 中添加以下内容

<modules runAllManagedModulesForAllRequests="true" />

它位于 system.webserver 节点内部。

选项 2:添加 .xml 到 IIS 的映射,并强制将该文件扩展名添加到 ASP.net 管道中。请参阅here

关于asp.net-mvc - sitemap.xml url 返回 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com