Unable to submit large attachments through v9 ECL / older ECL Legacy interface works well

Hi,

 

This wrong behavior is repeatable with the SDK .Net sample application "SampleV9Client".

Write a procedure with a small start formular with only one attachment clip. Start this small process with the "SampleV9Client" using a picture with a size of around 8MBytes and the following error message will displayed:

 

Fehler beim Empfangen der HTTP-Antwort für http://localhost/ECL.WS/Service.svc. Die Ursache kann sein, dass die Dienstendpunktbindung kein HTTP-Protokoll verwendet. Eine andere mögliche Ursache ist, dass der HTTP-Anforderungskontext vom Server abgebrochen wird (vermutlich auf das Herunterfahren des Diensts zurückzuführen). Weitere Informationen finden Sie in den Serverprotokollen

 

InnerException:

Von der Übertragungsverbindung können keine Daten gelesen werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen Server

 

stack trace:

bei System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason) bei System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) bei System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) bei Service.PostAttachment(ServiceSessionState session, String folderID, AttachmentOwnerType type, String fileName, Byte[] fileData) bei ServiceClient.PostAttachment(ServiceSessionState session, String folderID, AttachmentOwnerType type, String fileName, Byte[] fileData) bei Metastorm.ECL.Client.Net.MetastormOperation.PostAttachment(String folderID, AttachmentOwnerType attachmentOwnerType, String fileName, Stream fileData) bei Metastorm.ECL.Clientv9.FieldEditor.FieldEditor_Closed(Object sender, EventArgs e) in C:\Program Files (x86)\Metastorm\BPM\SDK\Samples\ECLv9Client\FieldEditor.cs:Zeile 403. bei System.Windows.Forms.Form.OnClosed(EventArgs e) bei System.Windows.Forms.Form.CheckCloseDialog(Boolean closingOnly)

 

If you try to start the same process with SDK .net sample application "LegacySampleClient" with the same picture - everything works fine! But this ECL.Legacy interface does not support all the new v9 features.

 

Can anyone give me a working ECL-WCF configuration (client and server site) which is able to handle large attachments? Or a working .net sample application with the new v9 ECL interface.

 

Server: Win2008 R2 German

Metastorm: v9.1.1.4

SQL Server 2008 R2

 

Thilo

Tagged:

Comments

  • Hi Thilo,

     

    If smaller images are working, then the problem may lie in the conservative default values in your calling application's binding configuration (under service model). In your calling application you should have a service model defined somewhere like this:

     

    <

    system.serviceModel>

    <

    bindings>

    <

    basicHttpBinding>

    <

    bindingname="BasicHttpBinding_Service"closeTimeout="00:01:00"openTimeout="00:01:00"receiveTimeout="00:10:00"sendTimeout="00:01:00"allowCookies="false"bypassProxyOnLocal="false"hostNameComparisonMode="StrongWildcard"maxBufferSize="65536"maxBufferPoolSize="524288"maxReceivedMessageSize="65536"messageEncoding="Text"textEncoding="utf-8"transferMode="Buffered"useDefaultWebProxy="true">

    <

    readerQuotasmaxDepth="32"maxStringContentLength="8192"maxArrayLength="16384"maxBytesPerRead="4096"maxNameTableCharCount="16384"/>

    <

    securitymode="TransportCredentialOnly">

    <

    transportclientCredentialType="Windows"proxyCredentialType="None"realm=""/>

    <

    messageclientCredentialType="UserName"algorithmSuite="Default"/>

    </

    security>

    </

    binding>

    </

    basicHttpBinding>

    </

    bindings>

    <

    client>

     

    <

    endpointaddress="http://localhost/ECL.WS/Service.svc"binding="basicHttpBinding"bindingConfiguration="BasicHttpBinding_Service"contract="svcReferenceMetastormWS.Service"name="BasicHttpBinding_Service"/>

    </

    client>

    </

    system.serviceModel>

     

     

    Things like MaxReceivedMessageSize and MaxStringContentLength should be increased to accomodate big data gets. The corresponding values should also be increased in the ECL.WS web.config.

     

    If problems persist, please send an email to HelpDesk.

     

  • Hey Thilo,

     

    Edit your ecl.ws web.config:

     

    C:\Program Files (x86)\Metastorm\BPM\ECL.WS\Web.config

     

    and add the following within system.web: 

     

    <system.web>

    ...

     

    </system.web>

     

    After I add that I'm able to upload large files.  I was testing with 32mb .pdf's and an 8mb .jpg. I attached my web.config

     

    Cheers,

    Dan