0

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

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

如果我不必通过我的应用程序将所有直观通用引用的实例更改为我想出的临时解决方案,我会喜欢它:/Service/GetItems/T=My.Full.Item.Type. 也没有那么好。

谢谢大家!

4

1 回答 1

2

看起来您遇到了 URL 的受限字符问题。请注意,这与路由无关,而是与 ASP.NET 阻止 URL 中的某些字符有关。

为什么它以前可以使用 URL 重写?很可能是因为 URL 被重写以在查询字符串中包含这些字符,然后才将其传递给 ASP.NET。

有些事情你可以尝试。

有一个注册表设置允许限制字符http://support.microsoft.com/kb/820129

这是另一篇相关的支持文章:http: //support.microsoft.com/default.aspx ?scid=kb;EN-US;826437

在 ASP.NET 4 中,我们计划使其更易于配置。

于 2009-08-03T15:52:01.410 回答