2009-03-11 6 views
2

Wir erhalten seltsames Verhalten von einem Dienst, den wir auf einem Remote-System implementiert haben, auf das wir zugreifen und Daten bereitstellen.WCF-Protokollausnahme

Das Abrufen von Informationen aus dem Dienst scheint kein Problem zu sein. Wenn wir jedoch versuchen, Insert-Methoden für den Service auszuführen, erhalten wir eine System.ServiceModel.ProtocolException. Das Seltsame ist, dass es etwa 40 Datensätze erfolgreich vor dem Fehler ausführen wird.

Der Client kommuniziert über SSL und TransportWithMessageSecurity ist auf dem wsHttpBinding aktiviert.

Die Fehlermeldung auf der "sicheren Session-Aktivität einrichten" wird erstellt:

System.ServiceModel.ProtocolException, System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089

der Inhaltstyp text/html der Antwortnachricht nicht die Art der Bindung (application/soap + xml; charset = UTF-8) Inhalt überein. Wenn Sie einen benutzerdefinierten Encoder verwenden, stellen Sie sicher, dass die IsContentTypeSupported-Methode ordnungsgemäß implementiert ist.

Wir haben eine Reihe von Tests versucht, von denen alle konsequent so schnell Fehler wie wir eine bestimmte Anzahl von Einsätzen erreichen.

Irgendwelche Vorschläge würden geschätzt.

+1

Haben Sie das jemals lösen. Ich habe das gleiche Problem. – capdragon

+0

Ich habe dieses Problem auch.Ich kann meinen Dienst hunderte Male erfolgreich aufrufen, und dann bekomme ich plötzlich ProtocolException. –

Antwort

1

Ich frage mich, ob die trace viewer hier etwas Licht vergießen könnte? Keine Ahnung, was das Problem ist, ich habe Angst ...

+0

Hi Marc, der Trace-Viewer hat mir die Ausnahme gemacht. Ich kann den Fehler neu erstellen und das gleiche Ergebnis erhalten, aber ich weiß nicht, was es verursacht. – stephenl

+0

dann bin ich ratlos; wenn es bei * all * nicht funktioniert hat, gibt es eine reihe von ideen - aber nach kurzer zeit stehen bleiben? Ungerade. –

+0

Weitere Tests haben ergeben, dass möglicherweise ein Konfigurationsproblem mit dem SSL-Zertifikat auf dem Host vorliegt. Könnte ein paar Tage dauern, bevor ich mehr weiß, aber werde eine Lösung veröffentlichen, wenn ich jemals herausfinden werde, was das Problem war. Prost. – stephenl

1

Wenn ein Stück Code HTML sendet, dann sollten Sie es wahrscheinlich lesen, um zu sehen, was es sagt.

1

Sie haben wahrscheinlich die konfigurierte Nachrichtengröße erreicht und die WCF-Infrastruktur schneidet die SOAP-Nachricht ab, sodass der Serializer (Contract oder XML Serializer) die Nachricht nicht deserialisieren kann.

Versuchen Sie, die WCF Antragsgrße sehen zunehmende < readerQuotas >

+0

Ja, aber es gab diese HTML-Nachricht ... –

1

ASP.NET möglicherweise nicht ordnungsgemäß für navigate .NET 4.0 konfiguriert werden, in dem .NET 4.0 installiert ist, und versuchen Sie den folgenden Befehl ausführen es neu zu installieren:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -iru 
+0

Danke! Das hat mein Problem gelöst. =) –

0

Dies könnte jemandem helfen. Mein Problem war: Ich habe eine Website, die einen WCF-Dienst verbraucht. Nach der Bereitstellung der Website habe ich vergessen, den WCF-Dienst ebenfalls bereitzustellen.

Nach Bereitstellung des WCF-Diensts funktionierte alles einwandfrei.

0

Ich stieß auf das gleiche Problem. Schließlich habe ich eine Lösung gefunden, indem ich einen Code in die Datei web.config hinzugefügt habe.

Ich habe diese unter dem <basicHttpBinding> tag:

<binding name="xyz"> 
    <security mode= "Transport" /> 
</binding> 
+0

Hallo, Ich lief auf das gleiche Problem. Schließlich habe ich eine Lösung gefunden, indem ich einige Codes in der Datei web.config hinzugefügt habe. diese unter dem -Tag Hoffnung hinzugefügt, das wird helfen – user6592853