0

さまざまな情報を返す一連の MVC4 Web API を構築しています。ほとんどの API では、GET メソッドを実行して完全修飾ドメイン名を渡しています。

短い名前を渡すと、API は期待どおりにデータを返します。ただし、「.com」で終わる ID として完全修飾ドメインを渡すと、404 が返されます。

Visual Studio 2010 内でデバッグすると、API は正常に動作します。ただし、コンテンツを「公開」すると、404 が発生し始めます。私の最初の予感は、IIS に関するものだということです。ただし、正確な問題に指を置くことができませんでした。

動作: /controller/action/server_shortname

404: /コントローラー/アクション/server.domain.com

任意のガイダンスをいただければ幸いです。ありがとう

4

2 に答える 2

0

.URL のパス部分で特別な意味を持ち、IIS によって拡張子区切り記号として解釈されます。

IIS 統合パイプライン モードで実行している場合は、次のハンドラーを<system.webServer>ノードに追加できます。

<system.webServer>
    <handlers>
        ...
        <add 
            name="UrlRoutingHandler" 
            type="System.Web.Routing.UrlRoutingHandler, System.Web" 
            path="/api/*" 
            verb="*" />
    </handlers>
</system.webServer>

path="/api/*"リッスンするように API を構成したエンドポイントにを調整するだけで済みます。

于 2013-05-16T08:29:06.113 に答える
0

.NET 4.0 を使用している場合は、web.config でこれを使用できます。

<httpRuntime relaxedUrlToFileSystemMapping="true" />

それとは別に、applicationPool を統合モードで実行していることも確認する必要があります。

同じ問題に言及している他のいくつかの投稿があり、構成によっては、そこに答えが見つかる可能性があります。

于 2013-05-16T07:34:50.617 に答える