2017-05-10 2 views
2

Ich benutze einen WCF-Service mit benutzerdefinierten Bindung, legte ich die gzip für die Länge meines Ergebnisses zu verringern. Kürzlich migrieren wir nach .NET Core und nachdem ich meine Methode im Kernprojekt aufgerufen habe, habe ich diesen Fehler bekommen.Rufen Sie WCF-Service-Formular Dotnet Core

Beim Empfang der HTTP-Antwort auf http://www.???.com:96/TicketCache.svc/mex ist ein Fehler aufgetreten. Dies könnte daran liegen, dass die Service-Endpunktbindung das HTTP-Protokoll nicht verwendet. Dies kann auch daran liegen, dass ein HTTP-Anforderungskontext vom Server abgebrochen wird (möglicherweise aufgrund des Herunterfahrens des Dienstes). Weitere Informationen finden Sie in den Serverprotokollen.

, nachdem ich meine config in wcf geändert und setzen Sie sich auf grundlegende Bindung, es funktionierte gut

ich viel gesucht und verschiedene Art und Weise testen, aber ich konnte nicht

BinaryMessageEncodingBindingElement binaryMessageEncodingBindingElement = new BinaryMessageEncodingBindingElement(); 

binaryMessageEncodingBindingElement.CompressionFormat = CompressionFormat.GZip; 

HttpTransportBindingElement httpTransportBindingElement = new HttpTransportBindingElement(); 
httpTransportBindingElement.MaxReceivedMessageSize = 65536000; 
httpTransportBindingElement.MaxBufferSize = 65536000; 

CustomBinding customBinding = null; 
customBinding = new CustomBinding(new BindingElement[] { binaryMessageEncodingBindingElement, httpTransportBindingElement }); 
customBinding.OpenTimeout = TimeSpan.FromMinutes(10); 
customBinding.CloseTimeout = TimeSpan.FromMinutes(10); 
customBinding.ReceiveTimeout = TimeSpan.FromMinutes(20); 
customBinding.SendTimeout = TimeSpan.FromMinutes(10); 
customBinding.CreateBindingElements(); 

var factory = new ChannelFactory<customBinding, new EndpointAddress("http://www.???.com:96/TicketCache.svc/mex")); 

beantworten Wie kann ich dieses Problem lösen?

+0

ist der Service und läuft, und Firewall-Zugriff gewährt? – ColinM

+0

Ich habe den Dienst in der Firewall erlaubt und es geöffnet –

Antwort

3

das ist .net Kernproblem, behob ich das Problem durch die Installation von Visual Studio 2017. Sie sollten es deinstallieren und installieren Sie dann die neueste Version von net core. derzeit ist 1.1.2

+0

Es funktionierte für mich, aber haben Sie eine Möglichkeit, mit der Änderung der .net-Core-Version zu arbeiten? –

+0

Ja, dies ist ein Fehler aufgrund des Problems "Datenvertrag". aber ich bin nicht sicher, ob es mit einer anderen Lösung behoben werden würde – Houtan

+0

Ich teste es auf einem anderen System mit VS2017 und .net Kern 1.1.1 und es funktionierte, ich bin so verwirrt –

0

Add Code unten wie web.config

<behaviors> 
     <serviceBehaviors> 
     <behavior name="ServiceBehaviour"> 
     <useRequestHeadersForMetadataAddress> 
     <defaultPorts> <!— Use your own port numbers —> 
      <add scheme="http" port="enter your web service port :8088" /> 
     </defaultPorts> 
     </useRequestHeadersForMetadataAddress> 
     </behavior> 
    </serviceBehaviors> 

+0

mein problem ist über .netCore projekt, es funktioniert gut mit .netframwork projekt und es ist nicht über meine web-service –

Verwandte Themen