2017-03-02 5 views
0

アプリケーション用に作成したWeb APIを呼び出すときに、ASP.NETコアで奇妙なエラーが発生します。 GET要求は正常終了し、必要なすべてのデータを返しますが、POST/PUTコマンドはすべて、特にMVCアプリケーションから502を返します。 PostmanからAPIを呼び出して適切な応答を得て、オブジェクトをデータベースに作成することができます。502 POST/PUT Web APIコール時のゲートウェイがASP.NET Core MVCから呼び出される

502 - Webサーバーが、ゲートウェイまたはプロキシサーバーの として機能しているときに無効な応答を受信しました。 を探しているページに問題があり、表示できません。 ( ゲートウェイまたはプロキシとして動作する)Webサーバーがアップストリームコンテンツサーバに接触した場合、 は、それがコンテンツサーバから無効な応答を受け取りました。

async Task Action() 
{ 
    response = await _service.CreateIncident(model); 
} 

await WindowsIdentity.RunImpersonated(identity.AccessToken, Action); 

CreateIncident(モデル)::

using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true })) 
     { 
      var newIncident = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); 
      var response = await client.PostAsync(hostUri, newIncident); 
      return response; 
     } 

は、1つのGET要求がある

私はAPIへのすべてのWeb要求のための次のコードで統合Windowsログインを偽装しています私はAjaxを通じて、ユーザーに表示するインクリメンタルIDを取得してから、502 Bad Gatewayを返す新しいインシデントを作成します。これはIIS設定が間違っていますか?

+0

newIncident文字列が255文字より長いですか? – Sparrow

+0

コマンドはサーバーに送られます(実際に起こったことはわかりませんでしたが、実際にこの作業を開始して実現するために何かを変更している可能性があります)...しかし、私はまだ502 Bad PUT/POSTリクエスト後にユーザーをリダイレクトしようとすると(たとえば、ユーザーがオブジェクトを作成し、そのオブジェクトのGETページに誘導される)、ゲートウェイエラーが発生します。 –

答えて

0

WindowsIdentity.RunImpersonated関数と非同期関数を使用すると機能しません。 GET以外の要求を行うときは、同期している必要があります。私はGitHubの問題を更新しました。このバグを解決したいと考えています。あなたがこのトピックの今後の訪問者である場合、これがどこで終わったかを見ることができますhere

0

データのサイズによっても異なると思います。より小さいパッケージは動作し、大きいパッケージは動作しません。

関連する問題