C#将我的网站地图从ashx更改为xml
我的网站地图位于:C#将我的网站地图从ashx更改为xml,c#,asp.net,sitemap,C#,Asp.net,Sitemap,我的网站地图位于: 使用制度; 使用System.Web; 公共类网站地图:IHttpHandler{ 公共void ProcessRequest(HttpContext上下文){ context.Response.ContentType=“text/xml”; } 公共布尔可重用{ 得到{ 返回false; } } } 据我所知,谷歌会同意的。但我希望它是一个.xml文件类型,以便在整个站点中保持一致性 我已尝试重写URL: <rewrite url="^~/Sitemap.xml"
使用制度;
使用System.Web;
公共类网站地图:IHttpHandler{
公共void ProcessRequest(HttpContext上下文){
context.Response.ContentType=“text/xml”;
}
公共布尔可重用{
得到{
返回false;
}
}
}
据我所知,谷歌会同意的。但我希望它是一个.xml文件类型,以便在整个站点中保持一致性
我已尝试重写URL:
<rewrite url="^~/Sitemap.xml" to="~/SiteMap.ashx" processing="stop"/>
但这不适用于.xml扩展名。不使用
ashx
文件,只需将代码放入程序集中,并使用您喜欢的任何扩展名:
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="Sitemap.xml"
type="SiteMap, AssemblyContainingClass" />
</httpHandlers>
</system.web>
</configuration>
显然,除非我们运行您的应用程序,否则该链接对我们不起作用:),但我想它是无意中自动链接的。@mell是的,这只是为了说明它不起作用,因为它没有经过重写处理器吗?您可能需要通配符扩展映射,比如@mell工作正常,我需要专门设置扩展xml还是什么?您的问题可能是您的Web服务器没有配置为允许asp.net处理.xml扩展。xml通常被认为是一个静态文件,因此不需要任何处理就可以使用它。谢谢!我已经看过谷歌了,我对汇编代码还不熟悉,我该怎么做?@TomGullen,创建一个新的类库项目,添加类,添加对system.web的引用,按compile。如果未将.xml配置为在web服务器中由asp.net处理,这对您仍然没有帮助
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="Sitemap.xml"
type="SiteMap, AssemblyContainingClass" />
</httpHandlers>
</system.web>
</configuration>