0

サーバー上で実行されている winForms アプリケーションがあり、ServiceHost.

問題は、クライアントが取得したいデータがServiceHost大きすぎる場合、次のような例外が発生することです。

受信中にエラーが発生しました。原因は http プロトコルを使用していない可能性があります。

どうすればこれを解決できますか? これが Web アプリケーションの場合、web.config で maxRequestLength/executionTimeout を増やすだけです。しかし、winforms プロジェクトには web.config がありません。

編集:ここにいくつかのコードがあります:

Service s = new Service(this.foo);
ServiceHost host = new ServiceHost(s, baseAddress);
host.AddServiceEndpoint(typeof(IService), new BasicHttpBinding(), "");
host.Open();
4

1 に答える 1

0

バインディングを作成するとき (この例の BasicHttpBinding では)、その MaxReceivedMessageSize (http://msdn.microsoft.com/de-de/library/system.servicemodel.httpbindingbase.maxreceivedmessagesize.aspx) をシナリオに適した値に設定するだけです。

    var binding = new BasicHttpBinding { MaxReceivedMessageSize = 20000; };
于 2012-10-25T07:52:34.413 に答える