1

我有简单的路线图,例如:

routes.MapRoute("Test", "test/{action}/{id}", new {controller = "Test", action = "Index", id = ""});

我的路线如下:

"/test/do-something/1.0.1"

在 IIS7+ 上的本地测试和自托管 .NET 4.5 中完全可以正常工作

但是,当我在 Azure 中托管它时,它似乎存在包含两个“.”的 ID 的问题,告诉我“您要查找的资源已被删除、名称已更改或暂时不可用。 ”。
当我更改它的路径时,"/test/do-something/1"它也可以在 Azure 上运行。

为什么 Azure 似乎禁止 ID 带有“。” 我该怎么办?

4

1 回答 1

0

我建议在您的 id 中使用“-”而不是“。” (句号),它在搜索引擎优化方面更友好。

如果你真的想让它与句点一起工作,你可以使用一个名为URLScan的工具。

什么是 URLScan?

有一个配置选项:

AllowDotInPath=0

默认情况下,此选项设置为 0。如果此选项设置为 0,则 URLScan 拒绝任何包含多个句点 (.) 的请求。这可以防止通过在 URL 的路径信息或查询字符串部分中放置安全文件扩展名来伪装对危险文件扩展名的请求。例如,如果此选项...

是配置的链接。

于 2013-02-20T22:36:35.493 回答