Ale*_*ork 4 asp.net web-config httphandler
我使用Http Handler动态生成XML/Google站点地图,因此我不需要手动维护XML文件.
我已将我的Http Handler映射到我的web.config中的"sitemap.xml",如下所示:
<httpHandlers>
<add verb="*" path="sitemap.xml" type="My.Name.Space, MyAssembly" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
它工作得很好.现在,www.mywebsite.com/sitemap.xml将我的Http Handler设置为动作并完全按照我的意愿行事.但是,这个URL会做同样的事情:www.mywebsite.com/some/folder/sitemap.xml我真的不想要那个,即我只是想将我的处理程序映射到我的应用程序的根目录.
我已经尝试将我的web.config中处理程序的"路径"更改为"/sitemap.xml"和"〜/ sitemap.xml",但都不起作用.
我在这里错过了什么吗?
尝试将以下内容添加到web.config中
<urlMappings enabled="true">
<add url="~/SiteMap.xml" mappedUrl="~/MyHandler.ashx"/>
</urlMappings>
Run Code Online (Sandbox Code Playgroud)
这使用了一个名为"Url Mapping"的ASP.NET 2.0的一个鲜为人知的功能.
2个解决方案:
Soln #1:您可以使用Request.Url属性检查请求路径,如果请求来自根路径,则可以生成XML,否则不执行任何操作。
解决方案 #2:将具有以下设置的 web.config 文件放入您不想处理 sitemap.xml 文件请求的每个文件夹中。
| 归档时间: |
|
| 查看次数: |
4467 次 |
| 最近记录: |