我刚刚将旧的基于通配符映射的URL系统升级为使用System.Web.Routing。在此之前,我能够请求URL /Service/GetItems<My.Full.Item.Type>,该URL在另一侧被解析并返回了您期望的内容。那很整洁。

现在启用路由,任何带有<!> lt;的请求或<!> gt;在它中返回'/'的内容而不是我想要的页面。即使我将这些编码为%3C和%3E,我也会被重定向到根目录,无论URL的其余部分是什么。

如果我不需要通过我的应用程序更改直观通用引用的所有实例来解决我提出的临时解决方案,我会喜欢它:/Service/GetItems/T=My.Full.Item.Type。不太好。

全部谢谢!

有帮助吗?

解决方案

您似乎遇到了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中,我们计划更容易配置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top