Hi Wentao,

Check your server and network setup. Some Web Services stacks (for
example .Net) have (configurable) limits.
There is nothing the client can do if the server closes the connection.


- Florian


> Hi,
> 
> We are testing DotCMIS with Web Service binding (atompub works fine so far, 
> but in some use cases we have to use web service binding).
> 
> We get below exceptions with createDocument function, the sample "test.zip" 
> file is only 400KB.
> 
> {"Unable to write data to the transport connection: An existing connection 
> was forcibly closed by the remote host."}
> 
> StackTrace as below
> 
>       at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] 
> buffers)
>    at System.Net.Security._SslStream.StartWriting(SplitWritesState 
> splitWrite, SplitWriteAsyncProtocolRequest asyncRequest)
>    at System.Net.Security._SslStream.ProcessWrite(BufferOffsetSize[] buffers, 
> SplitWriteAsyncProtocolRequest asyncRequest)
>    at System.Net.TlsStream.MultipleWrite(BufferOffsetSize[] buffers)
>    at System.Net.PooledStream.MultipleWrite(BufferOffsetSize[] buffers)
>    at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, 
> Int32 offset, Int32 size, AsyncCallback callback, Object state)
>    at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size)
>    at System.ServiceModel.Channels.BytesReadPositionStream.Write(Byte[] 
> buffer, Int32 offset, Int32 count)
>    at 
> System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.WebRequestOutputStream.Write(Byte[]
>  buffer, Int32 offset, Int32 count)
> 
> Here is our sample code:
> using System;
> using System.Collections.Generic;
> using System.Linq;
> using System.Text;
> using DotCMIS;
> using DotCMIS.Client;
> using DotCMIS.Client.Impl;
> 
> namespace ConsoleApplication1
> {
>     class Program
>     {
>         static void Main(string[] args)
>         {
>             
> System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate 
> { return true; };
> 
>             Dictionary<string, string> parameters = new Dictionary<string, 
> string>();
>             parameters[SessionParameter.BindingType] = 
> BindingType.WebServices;
>             String host = "myhost";
> 
>             parameters[DotCMIS.SessionParameter.WebServicesRepositoryService] 
> = "https://"+host+":7010/cmis/services101/RepositoryService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesAclService] = 
> "https://"+host+":7010/cmis/services101/ACLService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesDiscoveryService] 
> = "https://"+host+":7010/cmis/services101/DiscoveryService";;
> 
>             
> parameters[DotCMIS.SessionParameter.WebServicesMultifilingService] = 
> "https://"+host+":7010/cmis/services101/MultiFilingService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesNavigationService] 
> = "https://"+host+":7010/cmis/services101/NavigationService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesObjectService] = 
> "https://"+host+":7010/cmis/services101/ObjectService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesPolicyService] = 
> "https://"+host+":7010/cmis/services101/PolicyService";;
> 
>             
> parameters[DotCMIS.SessionParameter.WebServicesRelationshipService] = 
> "https://"+host+":7010/cmis/services101/RelationshipService";;
> 
>             parameters[DotCMIS.SessionParameter.WebServicesVersioningService] 
> = "https://"+host+":7010/cmis/services101/VersioningService";;
> 
>             
> parameters[DotCMIS.SessionParameter.WebServicesEnableUnsecuredResponse] = 
> "true";
> 
>             parameters[SessionParameter.User] = "admin";
>             parameters[SessionParameter.Password] = "password";
>             parameters[SessionParameter.RepositoryId] = "RepositoryOS1";
>             parameters[SessionParameter.ConnectTimeout] = "-1";
> 
>             SessionFactory factory = SessionFactory.NewInstance();
>             ISession session = factory.CreateSession(parameters);
> 
>             IDictionary<string, object> properties = new Dictionary<string, 
> object>();
>             properties[PropertyIds.Name] = "Hello World Document";
>             properties[PropertyIds.ObjectTypeId] = "Document";
> 
>             byte[] content = UTF8Encoding.UTF8.GetBytes("Hello World!");
> 
>             System.IO.FileInfo fileinfo = new 
> System.IO.FileInfo("C:\\test\\test.zip");
> 
>             DotCMIS.Data.Impl.ContentStream contentStream = new 
> DotCMIS.Data.Impl.ContentStream();
>             contentStream.FileName = fileinfo.Name;
>             contentStream.MimeType = "application/zip";
>             contentStream.Length = fileinfo.Length;
>             contentStream.Stream = fileinfo.OpenRead();
> 
>             IFolder myFolder = (IFolder)session.GetObjectByPath("/temp");
> 
>             IDocument myDoc1 = myFolder.CreateDocument(properties, 
> contentStream, DotCMIS.Enums.VersioningState.Major);
> 
>         }
> 
>     }
> }
> 
> Any ideas what could be the issue?
> 
> Thanks
> Wentao
> 
> 
> 
> ________________________________
> This email and its attachments are intended solely for the personal use of 
> the individual or entity named above. Any use of this communication by an 
> unintended recipient is strictly prohibited. If you have received this email 
> in error, any publication, use, reproduction, disclosure or dissemination of 
> its contents is strictly prohibited. Please immediately delete this message 
> and its attachments from your computer and servers. We would also appreciate 
> if you would contact us by a collect call or return email to notify us of 
> this error. Thank you for your cooperation.
> -BCHydroDisclaimerID5.2.8.1541
> 

Reply via email to