2016-10-27 1 views
2

MVC azure appサービスに投稿しています。大きなリクエスト(100〜150KB +)でタイムアウトしています。タイムアウト100,000 KBをAzureアプリケーションサービスにポストMVC

ログストリーム(アプリケーションまたはWebサーバー)を見ると、サーバーに接続する要求が表示されません。 リモートデバッガをプロセスに接続すると、コントローラのコードの最初の行に決して到達しません。

IISでローカルにwebappを実行して投稿すると、問題はなく、すぐに処理されます。

リクエストは、そのタイプのXMLデータ(application/xmlを使用)です。

コントローラとルーティングはかなり裸の骨

ルーティングです:あなたのCにRestSharp

static void Main(string[] args) 
    { 
     var client = new RestClient("https://AZUREURL/Post"); 
     var request = new RestRequest(Method.POST); 
     request.AddHeader("content-type", "application/xml"); 
     request.AddParameter("application/xml", "<105kb of xml data here>", ParameterType.RequestBody); 
     IRestResponse response = client.Execute(request); 
    } 
+0

これは、クライアント証明書を使用している他の人には問題があるようです:https://azure.microsoft.com/en-us/documentation/articles/app-service-web-configure-tls-mutual-auth/ – weretaco

答えて

0

私はAzureサポートからの応答を受けました。私は、クライアント証明書認証を使用していますが、それはサポートから

(100キロバイト程度)一定規模以上の要求であり、問​​題になるようになります。

を確認するには、この問題は、クライアント認証をオンに起こりますか? の場合、これは現在既知の問題です。現在の回避策は、 に、小さいペイロードで接続を確立するか、または新しいペイロードをポストするために既存の接続を で実行することです。

0

を使用して

config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "{controller}/{action}" 
    //defaults: new {} 
); 

コントローラ

[HttpPost] 
public UpdateRepairOrderResponse Post() 
{ 
    int ix = 0; //doesn't even hit this 
} 

テストのApp

var client = new RestClient("https://AZUREURL/Post"); 

をしかし、URLは次のようになります:あなたが示さODE

"https://AZUREURL/ControllerName". 

あなたはSOそれを貼り付けたときに、これはタイプミスであるかどうかわかりません。

+0

私はURLを削除しましたが、テストではhttps:// azureURL/Controller/Postを使用しています – weretaco

+0

URL内の投稿は必要ありません。おそらくhttpsに問題がありますか? httpは動作しますか? –

+0

投稿はコントローラ上のアクションです。ローカルで小規模なリクエストでも正常に動作します(一般的なサイズはおそらく10KBです) – weretaco

関連する問題