3

C# で MVC4 を使用して Web アプリケーションを開発しています。

PDF を AJAX 経由で送信する必要があるため、PDF を base64 に変換して C# の関数に送信します。その関数は、Web サービス上にある別の関数を呼び出します。

問題は、Web サービス関数が base64 文字列を取得していないことです。これは、非常に大きいが大きすぎるわけではなく、70kb のように約 111,000 文字であるためです。エラー 413 が表示されます

pdfCony は私の base64 文字列です

ここに画像の説明を入力

Web サービスの web.config で maxRecievedMesage を既に設定しています。

 <bindings>
  <basicHttpBinding>
    <binding name="basicHttpsBinding" maxReceivedMessageSize="524288000" />
    <binding name="mexHttpBinding" maxReceivedMessageSize="524288000" />
  </basicHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="ServicioCCMasAvalBehavior" name="ServicioCCMasAval.ServicioCCMasAval">
    <endpoint address="/" binding="basicHttpBinding" contract="ServicioCCMasAval.IServicioCCMasAval" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

だから、何が問題なのかわからない。助けてください。

4

3 に答える 3

1

私は同じ問題を抱えていましたが、私の場合、非常に大きなファイル (1Go 以上) を転送する必要があり、バインディング構成はストリーミング上にある必要がありました。

だからここに私が私の問題を修正した方法があります:

<bindings>
  <basicHttpBinding>
    <binding name="HttpStreaming" maxReceivedMessageSize="67108864" transferMode="Streamed"/>
  </basicHttpBinding>

  <!-- an example customBinding using Http and streaming-->
  <customBinding>
    <binding name="Soap12">
      <textMessageEncoding messageVersion="Soap12WSAddressing10" />
      <httpTransport transferMode="Streamed" maxReceivedMessageSize="67108864"/>
    </binding>
  </customBinding>
</bindings>

<services>
  <service name="FileTransferService">
    <endpoint address="http://localhost:40040/FileTransferService.svc" binding="basicHttpBinding" bindingConfiguration="HttpStreaming" name="NameSpace.FileTransferService" contract="NameSpace.IFileTransferService" />
  </service>
</services>
于 2014-07-09T17:05:29.623 に答える
1

これは適切な構成ですが、Visual Studio には独自の構成ファイルがあると思います。そのため、デバッグ モードの場合は、C:\Program Files (x86)\ と同じパスにある Visual Studio の app.config を実際に変更する必要があります。 Microsoft Visual Studio 10.0\Common7\IDE\ EXE だと思います。また、あなたがそれらを反転させているかどうかわからないmaxSendがあります

リモートでデバッグしている場合は、この回答を無視してください

于 2013-11-13T16:36:01.560 に答える