1

OK、私は電子メールを送信するためのメソッドをWebサービス内に作成しました(重要ではありません)。

サイト側では、MailMessageオブジェクトをXML(私が作成したカスタムルーチン)に逆シリアル化しています。次に、これはWebサービスのWebメソッドにパラメーターとして渡されます。メールメッセージの添付ファイルが約144kbを超えるまでは、すべて正常に機能します。

メールメッセージのXML文字列は、次のようになります(フォーマットされていない文字列パラメータとして渡されます)。

    <MailMessage>
      <To>xx.xx@Domain.com</To>
      <From>NoReply@Domain.com</From>
      <Body>blah blah</Body>
      <Attachment ContentType="application/vnd.ms-excel" fileName="Test.xls">
        <byte>00</byte>
        <byte>05</byte>
        <byte>6F</byte>
        …etc

私が正常に受信できる最大の添付ファイルサイズは144kbで、これよりも大きいものであり、リクエストがWebサービスメソッドに到達することはありません。私のWebメソッドの最初の行は、リクエストが受信されたことをログに記録することであるため、これは事実として知っています。IISログには、(収集できるものから)Webサービスによって受信されているPOSTメッセージが表示されますが、Webメソッド内にメッセージが到着したという証拠はありません。私が考えることができるすべての周りのキャッチブロックを試してみても、エラーはありません。

私が気付いていないある種のデフォルトの最大サイズ/タイムアウトはありますか?私はこの種のものの第一人者ではないので、ここで些細なことを見逃していると思います。

誰かが私が間違っているかもしれないことをアドバイスできますか?必要に応じてコード例を投稿できます。

4

1 に答える 1

3

web.configのmaxMessageLengthの値を増やすと、より大きなsoapメッセージをサーバーに渡すことができるようになります。

<configuration>
  <system.web>
  <httpRuntime maxMessageLength="409600"
    executionTimeoutInSeconds="300"/>
  </system.web>
</configuration>

詳細については、このリンクを参照してください。

ラージソープ

于 2012-11-16T17:35:58.750 に答える