2012-01-17 13 views
2

WCF Web APIに基づいてRESTサービスを作成しました。私のローカルIIS上で正常に動作します。しかし、それを外部のサーバに配備すると、それは動作しません。WCF Web Api RESTサービスのデバッグに関する問題

私のglobal.asax.csでは、ルート "MyRoute"をクラスMyHandlerにマップします。だから私がhttp://localhost/MyApplication/MyRoute/MyResourceに行くたびに、私は有効な応答を得る。

しかし、私がhttp://localhost/MyApplication/MyRoute/MyResourceをIEで開いた場合、外部のサーバーで「インターネットエクスプローラでWebページを表示できません」(FF = "接続がリセットされました - ページの読み込み中にサーバーへの接続がリセットされました)

無効なリソース名を入力した場合:http://localhost/MyApplication/MyRoute/adfasdfローカルサーバーには「エンドポイントが見つかりません」と同じ結果が得られます。

また、MyHandlerの/ MyRoute/MyResourceがマップされているメソッドからすべてのロジックを削除してみましたが、要求に失敗したコードが存在していたものの、その結果が残ります。

私の推測では、何らかの理由でルートマッピングが問題であると思われます。

私は、この特定の場合、またはより一般的にこれをどのようにデバッグするかのいずれかについて、助けに感謝したいと思います。 1つの不満は、私がエラーログをどこで見つけることができるのか分からないことです。私はイベントビューアを見たことがありますが、何も見つけられず、どこをもっと見るか分かりません。

これが役立つ場合は、コードを投稿して嬉しいです。

編集:

[OK]を、だから私はこの問題を解決しました。それはルーティングのものだった。私はこれをweb.configに含めることで解決しました。

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="UrlRoutingModule" /> 
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />  
     </modules> 
    </system.webServer> 

これらのモジュールの背後にある仕組みを理解しても大丈夫です。それらはどこに定義されていますか?どのモジュールがロードされているかを定義するサーバの設定ファイルはありますか?

...そして、私はまだログがどこにあるのかわかりません。

+0

健全性チェック。あなたのウェブサイトが正しく設定されていること、アプリケーションプールが正しいバージョンの.netと正しいモードに設定されていることを確認してください。 IISログを確認して、IISログがそこに到達していることを確認します。あなたのローカルIISは何ですか?あなたのサーバーのIISはどうですか?違いがあります。 –

+0

両方のIISインスタンスのアプリケーションプールと比較すると、両方ともASP.NET v4.0、管理パイプラインモード=統合です。どちらのサーバーもIIS 7です。 IISログはどこにありますか? –

+0

答えを投稿してくれてありがとう。どのようにそれを把握しましたか? –

答えて

0

IISでホストする場合、Web APIはASP.NET(MVC)と同じURLルーティングモジュールを使用してエンドポイントを選択します。あなたが自己ホスティングしているなら、それはする必要はありません。

関連する問題