このエラーに 1 週間取り組んできましたが、検索してもまだ解決できません。エラーは次のとおりです。
リモート サーバーが予期しない応答を返しました: (400) 不正な要求。
WCF を使用して Windows phone アプリから画像を保存しようとしましたMaxReceivedMessageSize
が、既定値よりも高い値を設定する必要があることがわかっています。私はすべてを試しましたが、運はありませんでした!
マイweb.config
ファイル (wcf サービス)
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
hostNameComparisonMode="StrongWildcard"
receiveTimeout="00:10:10"
sendTimeout="00:10:00"
openTimeout="00:10:00"
closeTimeout="00:10:00"
transferMode="Buffered"
messageEncoding="Text"
textEncoding="utf-8"
bypassProxyOnLocal="false"
useDefaultWebProxy="true" >
<readerQuotas
maxDepth="2147483647"
maxStringContentLength="2147483646"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="Service1" behaviorConfiguration="Service1Behavior">
<endpoint
address=""
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1"
contract="IService1" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Service1Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
私のWindows Phoneアプリケーションには、ServiceReferences.ClientConfig
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:1772/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1"
contract="ServiceReference1.IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
また、コードでバインディングを設定しようとしています:
BasicHttpBinding binding = new BasicHttpBinding();
binding.MaxReceivedMessageSize = 2147483647;
binding.MaxBufferSize = 2147483647;
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1772/Service1.svc");
Service1Client proxy = new Service1Client(binding, endpointAddress);
これを修正する方法が本当にわかりません...サーバーが私のweb.configファイルを使用していないようです??? その場合、どうすれば更新できますか?