Grundlegendes zu WebRequest-Problemen und -AusnahmenUnderstanding WebRequest Problems and Exceptions

WebRequest und die abgeleiteten Klassen (HttpWebRequest, FtpWebRequest und FileWebRequest) lösen Ausnahmen aus, um einen nicht ordnungsgemäßen Zustand zu signalisieren.WebRequest and its derived classes (HttpWebRequest, FtpWebRequest, and FileWebRequest) throw exceptions to signal an abnormal condition. In einigen Fällen ist die Lösung dieser Probleme nicht offensichtlich.Sometimes the resolution of these problems is not obvious.

ProjektmappenSolutions

Überprüfen Sie die Status-Eigenschaft der WebException, um das Problem zu ermitteln.Examine the Status property of the WebException to determine the problem. In der folgenden Tabelle werden mehrere Statuswerte und einige mögliche Lösungen angezeigt.The following table shows several status values and some possible resolutions.

StatusStatus DetailsDetails LösungSolution
SendFailure

- oder --or-

ReceiveFailure
Es liegt ein Problem des zugrunde liegenden Sockets vor.There is a problem with the underlying socket. Die Verbindung wurde möglicherweise zurückgesetzt.The connection may have been reset. Stellen Sie erneut eine Verbindung her, und senden Sie die Anforderung erneut.Reconnect and resend the request.

Stellen Sie sicher, dass das neueste Service Pack installiert ist.Make sure the latest service pack is installed.

Vergrößern Sie den Wert der ServicePointManager.MaxServicePointIdleTime-Eigenschaft.Increase the value of the ServicePointManager.MaxServicePointIdleTime property.

Legen Sie HttpWebRequest.KeepAlive auf falsefest.Set HttpWebRequest.KeepAlive to false.

Erhöhen Sie die Anzahl der maximalen Verbindungen mit der DefaultConnectionLimit-Eigenschaft.Increase the number of maximum connections with the DefaultConnectionLimit property.

Überprüfen Sie die Proxykonfiguration.Check the proxy configuration.

Wenn Sie SSL verwenden, stellen Sie sicher, dass der Serverprozess über eine Zugriffsberechtigung auf den Zertifikatspeicher verfügt.If using SSL, make sure the server process has permission to access the Certificate store.

Legen Sie AllowWriteStreamBuffering auf false fest, wenn Sie eine große Datenmenge versenden.If sending a large amount of data, set AllowWriteStreamBuffering to false.
TrustFailure Das Serverzertifikat konnte nicht überprüft werden.The server certificate could not be validated. Versuchen Sie, den URI mit Internet Explorer zu öffnen.Try to open the URI using Internet Explorer. Beheben Sie alle von Internet Explorer angezeigten Sicherheitswarnungen.Resolve any Security Alerts displayed by IE. Wenn Sie die Sicherheitswarnung nicht beheben können, erstellen Sie eine Zertifikatrichtlinienklasse, die ICertificatePolicy implementiert, true zurückgibt und an CertificatePolicy übergibt.If you cannot resolve the security alert, then you can create a certificate policy class that implements ICertificatePolicy that returns true, and pass it to CertificatePolicy.

Siehe https://support.microsoft.com/?id=823177.Refer to https://support.microsoft.com/?id=823177.

Stellen Sie sicher, dass das Zertifikat der Zertifizierungsstelle, die das Serverzertifikat signiert hat, zur Liste vertrauenswürdiger Zertifikataussteller in Internet Explorer hinzugefügt wird.Make sure that the certificate of the Certificate Authority that signed the server certificate is added to the Trusted Certificate Authority list in Internet Explorer.

Stellen Sie sicher, dass der Hostname in der URL mit dem allgemeinen Namen für das Serverzertifikat übereinstimmt.Make sure that the host name in the URL matches the common name on the server certificate.
SecureChannelFailure In der SSL-Transaktion ist ein Fehler aufgetreten, oder es liegt ein Zertifikatproblem vor.An error occurred in the SSL transaction, or there is a certificate problem. .NET Framework, Version 1.1, unterstützt nur SSL Version 3.0.The .NET Framework version 1.1 only supports SSL version 3.0. Wenn der Server nur TLS Version 1.0 oder die SSL-Version 2.0 verwendet, wird die Ausnahme ausgelöst.If the server is using only TLS version 1.0 or SSL version 2.0, the exception is thrown. Führen Sie ein Upgrade auf .NET Framework, Version 2.0, durch, und legen Sie SecurityProtocol so fest, dass es mit dem Server übereinstimmt.Upgrade to .NET Framework version 2.0, and set SecurityProtocol to match the server.

Das Clientzertifikat wurde von einer Zertifizierungsstelle (CA) signiert, der der Server nicht vertraut.The client certificate was signed by a Certificate Authority (CA) that the server does not trust. Installieren Sie das Zertifikat der Zertifizierungsstelle auf dem Server.Install the CA's certificate on the server. Siehe https://support.microsoft.com/?id=332077.See https://support.microsoft.com/?id=332077.

Stellen Sie sicher, dass das neueste Service Pack installiert ist.Make sure you have the latest service pack installed.
ConnectFailure Die Verbindung konnte nicht hergestellt werdenThe connection failed. Eine Firewall oder ein Proxy blockiert die Verbindung.A firewall or proxy is blocking the connection. Ändern Sie die Firewall oder den Proxy, um die Verbindung zu ermöglichen.Modify the firewall or proxy to allow the connection.

Bestimmen Sie explizit eine WebProxy-Klasse in der Clientanwendung, indem Sie den WebProxy-Konstruktor (WebServiceProxyClass.Proxy = new WebProxy("http://server:80", true)) aufrufen.Explicitly designate a WebProxy in the client application by calling the WebProxy constructor (WebServiceProxyClass.Proxy = new WebProxy("http://server:80", true)).

Führen Sie Filemon oder Regmon aus, um sicherzustellen, dass die Arbeitsprozessidentität die erforderlichen Berechtigungen für einen Zugriff auf WSPWSP.dll, HKLM\System\CurrentControlSet\Services\DnsCache oder HKLM\System\CurrentControlSet\Services\WinSock2 verfügt.Run Filemon or Regmon to ensure that the worker process identity has the necessary permissions to access WSPWSP.dll, HKLM\System\CurrentControlSet\Services\DnsCache or HKLM\System\CurrentControlSet\Services\WinSock2.
NameResolutionFailure Der Domain Name Service konnte den Hostnamen nicht auflösen.The Domain Name Service could not resolve the host name. Konfigurieren Sie den Proxy ordnungsgemäß.Configure the proxy correctly. Siehe https://support.microsoft.com/?id=318140.See https://support.microsoft.com/?id=318140.

Stellen Sie sicher, dass eine Antivirensoftware installiert ist, oder die Verbindung nicht durch die Firewall blockiert wird.Ensure that any installed anti-virus software or firewall is not blocking the connection.
RequestCanceled Abort wurde aufgerufen, oder ein Fehler ist aufgetreten.Abort was called, or an error occurred. Dieses Problem kann durch eine starke Auslastung des Clients oder Servers verursacht werden.This problem might be caused by a heavy load on the client or server. Verringern Sie die Auslastung.Reduce the load.

Erhöhen Sie die DefaultConnectionLimit-Einstellung.Increase the DefaultConnectionLimit setting.

Weitere Informationen zum Ändern der Leistungseinstellungen des Webdiensts finden Sie unter https://support.microsoft.com/?id=821268.See https://support.microsoft.com/?id=821268 to modify Web service performance settings.
ConnectionClosed Die Anwendung hat versucht, auf ein Socket zu schreiben, das bereits geschlossen wurde.The application attempted to write to a socket that has already been closed. Der Client oder Server ist überlastet.The client or server is overloaded. Verringern Sie die Auslastung.Reduce the load.

Erhöhen Sie die DefaultConnectionLimit-Einstellung.Increase the DefaultConnectionLimit setting.

Weitere Informationen zum Ändern der Leistungseinstellungen des Webdiensts finden Sie unter https://support.microsoft.com/?id=821268.See https://support.microsoft.com/?id=821268 to modify Web service performance settings.
MessageLengthLimitExceeded Der festgelegte Grenzwert (MaximumResponseHeadersLength) für die Nachrichtenlänge wurde überschritten.The limit set (MaximumResponseHeadersLength) on the message length was exceeded. Vergrößern Sie den Wert der MaximumResponseHeadersLength-Eigenschaft.Increase the value of the MaximumResponseHeadersLength property.
ProxyNameResolutionFailure Der Domain Name Service konnte den Proxyhostnamen nicht auflösen.The Domain Name Service could not resolve the proxy host name. Konfigurieren Sie den Proxy ordnungsgemäß.Configure the proxy correctly. Siehe https://support.microsoft.com/?id=318140.See https://support.microsoft.com/?id=318140.

Zwingen Sie HttpWebRequest hierfür kein Proxy zu verwenden, indem Sie die Proxy-Eigenschaft auf null festlegen.Force HttpWebRequest to use no proxy by setting the Proxy property to null.
ServerProtocolViolation Die Serverantwort ist eine ungültige HTTP-Antwort.The response from the server is not a valid HTTP response. Dieses Problem tritt auf, wenn .NET Framework erkennt, dass die Serverantwort nicht mit HTTP 1.1 RFC übereinstimmt.This problem occurs when the .NET Framework detects that the server response does not comply with HTTP 1.1 RFC. Dieses Problem kann auftreten, wenn die Antwort falsche Header oder falsche Headertrennzeichen enthält. RFC 2616 definiert HTTP 1.1 und gültige Formate für die Serverantwort.This problem may occur when the response contains incorrect headers or incorrect header delimiters.RFC 2616 defines HTTP 1.1 and the valid format for the response from the server. Weitere Informationen finden Sie unter RFC 2616 –Hypertext Transfer-Protokoll – HTTP/1.1 auf der Webseite der Internet Engineering Task Force (IETF).For more information, see RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 at Internet Engineering Task Force (IETF) website. Führen Sie eine Ablaufverfolgung im Netzwerk der Transaktion aus, und untersuchen Sie die Header in der Antwort.Get a network trace of the transaction and examine the headers in the response.

Wenn Ihre Anwendung eine Serverantwort ohne Analyse erfordert (dies kann ein Sicherheitsproblem sein), dann legen Sie useUnsafeHeaderParsing in der Konfigurationsdatei auf true fest.If your application requires the server response without parsing (this could be a security issue), set useUnsafeHeaderParsing to true in the configuration file. Weitere Informationen finden Sie unter <HttpWebRequest>-Element (Netzwerkeinstellungen).See <httpWebRequest> Element (Network Settings).

Weitere InformationenSee also