none
Impossible de lire les données de la connexion de transport : Une connexion existante a dû être fermée par l'hôte distant.

    Dotaz

  • Bonjour,

    je suis entrain d'envoyer un flux (fichier doc) vers mon server WCF

    string FilePath = @"C:\Projets\\ServiceTest\RepositoryTestPrintFile";
                string FileName = "Gest_3.doc"; 
                byte[] buffer = null;
              
                using (FileStream fs = new FileStream(Path.Combine(FilePath,FileName), FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, (int)fs.Length);
                }
                if (buffer != null)
                {
                    service.PrintAsByte(buffer, null, null, false);
                }
       [ServiceContract]
        public interface IImpressionService
        {
                    [OperationContract(Name = "PrintAsByte")]
                   void Print(byte[] data, string printerName, string printFileName, bool printToFile);
    }
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="ServiceBinding"  closeTimeout="00:01:00"
              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
              maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
              messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
              useDefaultWebProxy="true">
              <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
              <security mode="None">
                <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                <message clientCredentialType="UserName" algorithmSuite="Default"/>
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <services>
          <service name="ImpressionService.ImpressionService" behaviorConfiguration="serviceBehavior">
            <endpoint address="http://localhost:1093/ImpressionService.svc"
                      binding="basicHttpBinding"
                      bindingConfiguration="ServiceBinding"
                      contract="ImpressionService.IImpressionService"
                      name="Impression"
                      />
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
                 
            <behavior name="serviceBehavior">
              <dataContractSerializer
                maxItemsInObjectGraph="200000000"/>
                        <serviceMetadata httpGetEnabled="True"/>
                        <serviceDebug includeExceptionDetailInFaults="True" />
              </behavior>
          </serviceBehaviors>
        </behaviors>
         </system.serviceModel>

    Si la taille du fichier lu dans buffer est faible le service s'execute correctement.

    Mais j'ai l'erreur suivante à l'execution si la taille est important:

     

    System.ServiceModel.CommunicationException

    {"Une erreur s'est produite lors de la réception de la réponse HTTP à http://localhost:1093/Impression.svc. La raison peut en être que la liaison de point de terminaison de service n'utilise pas le protocole HTTP. Cela peut également être dû au fait qu'un contexte de demande HTTP a été ignoré par le serveur (peut-être à cause de l'arrêt du service). Pour plus d'informations, consultez les journaux du serveur."}

    InnerException

    Impossible de lire les données de la connexion de transport : Une connexion existante a dû être fermée par l'hôte distant."}

    Merci de votre aide


    • Upravený gophette 13. března 2012 12:47
    13. března 2012 12:45

Odpovědi

Všechny reakce