1

私は次のような簡単なルートマップを持っています:

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

私のルートパスは次のようなものです。

"/test/do-something/1.0.1"

これは、IIS7+でのローカルテストとセルフホストの.NET4.5で完全に正常に機能します

ただし、Azureでホストすると、IDに2つの「。」が含まれているという問題が発生し、「探しているリソースが削除されたか、名前が変更されたか、一時的に利用できなくなった」と表示されます。
パスを変更する"/test/do-something/1"と、Azureでも機能します。

Azureが「。」を含むIDを禁止しているように見えるのはなぜですか。そして私はそれについて何ができますか?

4

1 に答える 1

0

IDには「。」ではなく「-」を使用することをお勧めします。(期間)、それはSEOの面でより友好的です。

本当にピリオドで動作させたい場合は、URLScanと呼ばれるツールを使用できます。

URLScanとは何ですか?

構成するオプションがあります。

AllowDotInPath = 0

デフォルトでは、このオプションは0に設定されています。このオプションが0に設定されている場合、URLScanは複数のピリオド(。)を含むすべての要求を拒否します。これにより、URLのパス情報またはクエリ文字列部分に安全なファイル名拡張子を付けることで、危険なファイル名拡張子の要求を偽装しようとするのを防ぎます。たとえば、このオプションの場合...

構成へのリンクは次のとおりです

于 2013-02-20T22:36:35.493 に答える