2016-05-17 11 views
1

IIS6でホストされているC#で書かれたASP.Net WEB APIを使用しています。 APIにPOSTを行うと、HTTPステータス413が返されます。API(WCFではなく)は、本体のコンテンツが約32 + KBである限り、応答を返します。サイズが40 KBの場合は、エラーになります。以下はWeb APIがステータスを返します。413

私はIIS6を使用しています消費者側

string apiUrl = "https://a.com/api/emails/send"; 
using (WebClient client = new WebClient()) 
{ 
    client.Headers.Add("Content-Type", "application/json"); 
    client.Headers.Add("Accept", "application/json"); 
    try 
    { 
     var jsonResponce = client.UploadString(apiUrl, jsonRequest); 

     var sendEmailResponce = JsonConvert.DeserializeObject<SendEmailResponce>(jsonResponce); 
     var emailMessageId = sendEmailResponce.EmailMessageId; 
     Console.WriteLine("email sent."); 
    } 
    catch (WebException exp) 
    { 
     var error = exp.ToString(); 
     Console.WriteLine(error); 
    } 
    catch (Exception exp) 
    { 
     var error = exp.Message; 
    } 
} 

上のコードスニペットです。クライアントのIIS /コード変更の設定がこの問題を回避するのに役立つかもしれませんか?

+0

ホストされているサービスの設定ファイルをチェックしましたか?サービスはどのように構築されていますか?そのような制限は設定ファイルで設定/変更できます。ここに設定ファイル(主にサービスのエンドポイント設定)を含めることができます – Icepickle

+0

後者はデフォルトの最大ファイルサイズの上限である40KBで4MBではありません?いずれにしても、[この記事](http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/)でファイルサイズの制限を変更してくださいWeb APIでは – strickt01

+0

あなたの設定には、maxReceivedMessageSizeと呼ばれるものがあるはずです。 – Umitk

答えて

1

は、あなたがそれの下でWebアプリケーションをホストしているサイトを選択して、この、

  1. を起動し、「インターネットインフォメーションサービス(IIS)マネージャ」
  2. を試してみてください。機能]セクションで
  3. 、ダブルクリックして「設定エディタ」
  4. の下で「セクション」を選択しますその後、system.webServerのServerRuntime
  5. 20メガバイトのようになり、「uploadReadAheadSize」セクションを変更し
  6. (値はバイトにあります)
  7. 「適用」をクリックします。
+0

ありがとうPranav。出来た –

関連する問題