1

古い非 MVC コードを MVC 4 プロジェクトに統合しています。古いコードには、基本認証の対象となるルートと API サブフォルダーに .SVC 拡張子を持つ WCF サービスがありました。

最初は、(http://mysite/myservice.svc/DoCommand) などのすべての SVC ファイルへの投稿で 404 エラーが発生していました。次に、これを追加しました:

routes.IgnoreRoute("{ allsvc}", new { allsvc = @". svc(/.*)?" });

サイトのルートにある SVC ファイルが呼び出せるようになりました。ただし、API サブフォルダー内の SVC ファイルはこれを返すようになりました。

<Error>
    <Message>
     No HTTP resource was found that matches the request URI 'http://mysite/API/myservice.svc/DoCommand'.
    </Message>
</Error>

DoCommand を含めない場合は、標準の WCF 情報画面が表示されます。

ああ、最後に、これは本番環境でのみ発生します。開発中は、localhost に対して、すべて正常に動作します。

よろしくお願いいたします。ありがとう。

4

2 に答える 2

2

答えはここにあります MVC4のサービススタック

問題は、私のサブフォルダーが Api と呼ばれていることです。これは、MVC と共にインストールされる WebApi インフラストラクチャに付属する Api の命名と競合します。

于 2012-11-19T23:13:31.263 に答える
0

Phil Haackによって詳細に説明されrelaxedUrlToFileSystemMapping="true"ているように、設定を試しましたか。この関連する質問を参照してください: ID にピリオドが含まれている場合、ApiController は 404 を返します。web.config

于 2012-11-19T20:56:22.053 に答える