0

画像をアップロードするための WCF サービスを作成しました。画像が 50KB 未満であれば正常に動作しますが、「リモート サーバーがエラーを返しました: (400) 不正な要求」というメッセージが表示されます。より大きな画像で。私は年齢を探していて、maxRequestLength や他のいくつかの設定を設定するなど、さまざまなことを試しました。

クライアント側では、web.config がそれを basicHttpBinding として取得しており、私は wsHttpBinding (より最新の機能セット用) を使用しています。手動でバインド タイプを wsHttpBinding に変更し、対応するオプションを変更すると、Unsupported Media Type エラーが発生します。WCF テスト クライアントを見ると、サービスが basicHttpBinding として表示されます。

したがって、私の質問は実際には 2 つあります。

  1. サービスが 50KB を超えるファイルを処理できるようにするには、どうすればよいですか?
  2. サービスが basicHttp ではなく wsHttp として認識されるようにするには、何を変更する必要がありますか?

これらに答える質問がある場合はお詫びします - 私はstackoverflowを精査し、いくつかの提案を試みましたが、見逃した可能性があります!

編集: いつものように、サービス web.config をいじり、手動でエンドポイントを wsHttpBinding に変更することで、wsHttpBinding の問題を解決することができました。ただし、アップロードファイルサイズが大きい問題はまだ発生しています。

4

1 に答える 1

2

web.configでバインディングを更新する必要があります

たとえば、これは私の wcf restful サービスで行った方法です。あなたの場合も非常に似ていると思います

    <bindings>
          <webHttpBinding>
              <!-- buffer: 64KB; max size: 64MB -->
              <binding name="StreamedBinding" closeTimeout="00:01:00" openTimeout="00:01:00" 
                       receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Streamed" 
                       maxBufferPoolSize="67108864" maxBufferSize="65536" maxReceivedMessageSize="67108864">
              </binding>
          </webHttpBinding>
</bindings>

<service name="WCFRestFul.ApiRestful">
        <endpoint address="" binding="webHttpBinding"
                  bindingConfiguration="StreamedBinding" bindingName="StreamedBinding" 
                  contract="WCFRestFul.IApiRestful" behaviorConfiguration="web" />
 </service>
于 2011-08-02T12:31:41.910 に答える