我刚刚将旧的基于通配符映射的网址系统升级为使用System.Web.Routing
。在此之前,我能够请求URL /Service/GetItems<My.Full.Item.Type>
,该URL在另一侧被解析并返回了您期望的内容。那很整洁。
现在启用路由功能,任何带&lt;的请求或者&gt;在它中返回'/'
的内容,而不是我想要的页面。即使我将这些编码为%3C和%3E,我也会被重定向到根目录,无论URL的其余部分是什么。
如果我不需要通过我的应用程序更改直观通用引用的所有实例来解决我提出的临时解决方案,我会喜欢它:/Service/GetItems/T=My.Full.Item.Type
。不太好。
全部谢谢!
答案 0 :(得分:2)
您似乎遇到了URL限制字符问题。请注意,这与路由无关,但ASP.NET阻止了URL中的某些字符。
为什么在使用URL重写之前它可以正常工作?最有可能的原因是,在将URL传递给ASP.NET之前,URL被重写为在查询字符串中包含这些字符。
你可以尝试一些事情。
有一个注册表设置允许受限字符http://support.microsoft.com/kb/820129
以下是另一篇与之相关的支持文章:http://support.microsoft.com/default.aspx?scid=kb;EN-US;826437
在ASP.NET 4中,我们计划更容易配置。