2

非常に奇妙なルーティングの問題があります。

エリアを使用しているASP.NETMVC3サイトがあります。アセットエリアに次のルートを設定しています。

public override void RegisterArea(AreaRegistrationContext context)
{
    context.MapRoute(
        null,
        "Assets/{controller}/{action}/{code}",
        null,
        new { code = @"(\w{2,3}$)" }
    );

    context.MapRoute(
        "Assets_default",
        "Assets/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional }
    );
}

次のURLをリクエストすると、完全に機能します

http://site.com/Assets/Gallery/GetByCode/AEP
http://site.com/Assets/Gallery/GetByCode/MEC
http://site.com/Assets/Gallery/GetByCode/GP
http://site.com/Assets/Gallery/GetByCode/BR2 
http://site.com/Assets/Gallery/GetByCode/ZZZ 
http://site.com/Assets/Gallery/GetByCode/123

しかし、このURLをリクエストすると、「404-リソースが見つかりません」というエラーが表示されます。

http://site.com/Assets/Gallery/GetByCode/PRN
http://site.com/Assets/Gallery/GetByCode/prn

私が試した他のすべてのURLは機能します-問題があるのはPRNだけのようです。

GalleriesController> GetByCodeアクションの先頭にブレークポイントを設定しましたが、PRNルートはアクションを入力しようとさえしません(404エラーが示唆しているように)。

PRNがルートで機能しない理由を誰かが知っていますか?または、他に何を調査することができますか?

助けてくれてありがとうサーン

4

1 に答える 1

2

これは、Windowsファイルシステムに「prn」フォルダを作成できないことに関連している可能性があります。私の推測では、IISはこの問題が上記の問題に共鳴するような方法でWindowsファイルシステムを使用しています。

実際、この投稿はあなたを助けるかもしれません:WindowsでのASP.NETMVCルーティングと予約済みファイル名

于 2012-09-18T09:19:07.527 に答える