Windows WCF-client mit internet-proxy-server mit der Fehlermeldung Der server verpflichtet, eine Protokollverletzung. Abschnitt=ResponseStatusLine
Unser team versuchen, um eine windows-Anwendung(c#), um einen WCF-Dienst mit internet-proxy-server
Zeigen Ausnahme "Der server verpflichtet, eine Protokollverletzung. Abschnitt=ResponseStatusLine" beim Aufruf von WCF-service -
Bitte geben Sie Vorschlag, um dieses problem zu lösen/zu jeder anderen alternative Lösung
//Code for creating proxy
public static DevicesServiceClient CreateProxy()
{
var proxy = new DevicesServiceClient("BasicHttpBinding_IDevicesService");
BasicHttpBinding binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.None;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.UseDefaultWebProxy = false;
binding.ProxyAddress = new Uri(string.Format("http://{0}:{1}", "192.168.0.20","808"));
proxy.Endpoint.Binding = binding;
proxy.ClientCredentials.UserName.UserName = "Username";
proxy.ClientCredentials.UserName.Password = "Password";
}
Server stack-trace:
System.ServiceModel.- Kanäle.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
bei ServiceModel.- Kanäle.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
System.ServiceModel.- Kanäle.RequestChannel.Request(Message message, TimeSpan timeout)
System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
System.ServiceModel.- Kanäle.ServiceChannel.Call(String Aktion, Boolean oneway,
ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
System.ServiceModel.- Kanäle.ServiceChannel.Call(String Aktion, Boolean oneway,
ProxyOperationRuntime operation, Object[] ins, Object[] outs)
System.ServiceModel.- Kanäle.ServiceChannelProxy.InvokeService(IMethodCallMessage
methodCall, ProxyOperationRuntime Betrieb)
System.ServiceModel.- Kanäle.ServiceChannelProxy.Invoke(IMessage message)Ausnahme erneut ausgelöst, auf [0]:
System.- Laufzeit.Remoting.Proxys.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
System.- Laufzeit.Remoting.Proxys.RealProxy.PrivateInvoke(MessageData&
msgData, Int32-Typ)
bei DevicesService.IDevicesService.CheckNetworkConnection(String ipAddress)
Mein client side code in der app.config
Meine server-side-code im Internet.config
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe nicht gesehen, diese Ausnahme vor, aber ich hatte schon große Probleme zu machen-proxy funktionieren auf diese Weise. Ich weiß nicht warum, aber die Einstellung die proxy-Adresse und verwenden Sie die Standard-proxy auf false BasicHttpBinding nie für mich gearbeitet. Ich hatte immer die Standard-web-proxy und legen Sie die URL dort oder ganz neue custom Bindung und set proxy-URL in http-transport-binding-element.
Überprüfen Sie die Header zurückgegeben, die von Ihrem proxy-server. Es sieht aus wie fehlerhafte/nicht-standard-Header Ursache diese Ausnahme.
http://www.velocityreviews.com/forums/t302174-why-do-i-get-the-server-committed-a-protocol-violation.html
Wie es aussieht wird das so etwas wie ein catch-all-Ausnahme und hat nur sehr bedingt als Ergebnis. Fehlerhaften Headern, schlagen den falschen port (gibt eine anders formatierte Antwort), und die content-length im response-all das können Ursachen für die Ausnahme. Wenn es ein header Problem, können Sie sagen, die Kunden zu ignorieren unsicheren Header (falls es einer vertrauenswürdigen Quelle stammen).
Versuchen, um dies zu diagnostizieren, einen Schritt zu einer Zeit.
<serviceMetadata httpGetEnabled = "true"/>
Dann ändern Sie die proxy-Einstellung im IE, und suchen Sie die Dienst-url und sehen, wenn Sie die WSDL-Seite.Code zum Aufruf wcf-Dienst von windows-client-Anwendung mithilfe der proxy-server
Haben Sie versucht, verwenden Sie ein Netzwerk-trafic-analyser, um mehr Informationen darüber, was gesendet und empfangen wird, von Ihrem client und server? Dies könnte Ihnen helfen, lösen das Problem, oder vielleicht wenigstens identifizieren Sie die Ursache.