1

Visual Studio 2012 を使用して新しい WCF プロジェクトを作成しました。サービスとコントラクトを定義するサービス ノードが g にないことに気付きましたがweb.confi、サービスを azure にデプロイして動作しましたが、次のエラーが発生しています。

The remote server returned an unexpected response: (413) Request Entity Too Large. In Silverlight

だから私は最大許容リクエストを増やす必要があると思いますが、サービスノードなしでそれを行うにはどうすればよいですか?

4

1 に答える 1

1

VS 2010 以降の WCF では、構成を簡素化するために、既定のエンドポイント (および既定のバインドと動作) の概念が追加されました。

詳細は次のリンクにあります: A Developer's Introduction to Window's Communication Foundation 4

あなたの場合、より大きなサイズのバインディングを構成ファイルに作成し、それをデフォルトのバインディングとして設定するか、そのバインディングを明示的に定義されたエンドポイントに割り当てる必要があります。

デフォルトでは、WCF (.NET 4 以降) は、http 経由で着信する要求を に割り当てますbasicHttpBinding。これらのプロトコル マッピングは、構成ファイルでも変更できます。

役立つ簡単な例をいくつか示します (リンクした記事で詳しく説明しています)。

デフォルトのバインディングを作成するには、バインディングを定義してname属性を省略します。

<bindings>
    <basicHttpBinding>
        <binding maxReceivedMessageSize="10000000" ....>
    </basicHttpBinding>
</bindings>

basicHttpBindingこれにより、提供された構成が、その構成を使用するサービスのデフォルトになります。

または、バインディング構成で属性を使用しnameて、定義済みの入力に割り当てることもできます。バインディング名が「MyBinding」であるとします。

<endpoint address="" binding="basicHttpBinding" 
                     bindingConfiguration="MyBinding" 
                     contract="MyService.IMyContract" />

http リクエスト以外のものが必要な場合basicHttpBindingは、プロトコル セクションでこれを行うことができます。

<system.serviceModel>
  <protocolMapping>
    <add scheme="http" binding="wsHttpBinding" bindingConfiguration="" />

あなたの状況で重要なのは、より大きな値でバインディングを作成し、それをデフォルトとして設定するか、エンドポイントに割り当てる必要があることです(これも定義する必要があります)。

前述したように、これらはアイデアを提供するための単純な例に過ぎず、リンクした記事にはさらに多くの詳細があります。

于 2013-06-30T18:03:19.877 に答える