Delphiアプリによって消費されているWCFがあります。サーバーに大きなリクエストを送信すると、次のエラーが発生することがあります。
---------------------------
Debugger Exception Notification
---------------------------
Project Project43.exe raised exception class ERemotableException with message 'The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'Log'. The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 58, position 140.'.
---------------------------
Break Continue Help
---------------------------
サーバー側でweb.configを次のように構成しました。
Web.config
<?xml version="1.0" ?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding">
<readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="NewServiceType">
<clear />
<endpoint address="http://localhost" binding="basicHttpBinding" bindingConfiguration="" contract="IRoboConsultaLog" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
しかし、私はこのエラーを受け取り続けます。インターネット上の一部の人々は、クライアント側のapp.configも変更する必要があると提案していますが、Delphiを使用しているため、その方法がわかりません。
<endpoint>
また、タグを適切に構成する方法がわからないことに気づきました。これがすべての問題の原因である可能性があります。以下は、私のWebサービスのインターフェースとクラスの両方です(より明確になるように縮小されています)。
インターフェース:
namespace RoboConsultaLogServer
{
[ServiceContract]
public interface IRoboConsultaLog
{
[OperationContract]
void Log(string key, string numeroSerial, string nomeTarefa, int qtdProcessos, float uptime, float duracaoTarefa,
int qtdSucesso, int qtdInsucesso, int qtdCancelado, bool servico, bool notificarResponsaveis, string logProcessos);
}
}
クラス
public class RoboConsultaLog : IRoboConsultaLog
{
...
}
誰かがこれを修正する方法を知っていますか?