Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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#将我的网站地图从ashx更改为xml_C#_Asp.net_Sitemap - Fatal编程技术网

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>