Frage

Ich habe einen WCF-Dienst erstellt, in dem ich die Nachricht lese, ob Feeds und neue Feeds über HttpWebRequest und HttpWebResponse mithilfe von C # -Codierung vorliegen. Wenn ich den Dienst auf meinem lokalen PC ausführe, funktioniert er einwandfrei und die Feeds werden ordnungsgemäß abgerufen, nicht nur in meinem System in fast allen unseren Netzwerksystemen. Ich verwende den CredentialCache.DefaultNetworkCredentials, der den HttpWebRequest-Proxy-Anmeldeinformationen als Standardnetzwerkanmeldeinformationen zuweist, und gebe auch HttpWebRequest.DefaultWebProxy für den Proxy von HttpWebRequest. In meinem PC funktioniert alles einwandfrei. Und wenn ich den Dienst auf unserem Server-PC auf den Windows-Diensten installiere und den Dienst starte, wird jedes Mal ein unerwarteter Fehler wie folgt ausgegeben:

System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at System.Net.HttpWebRequest.GetResponse()

Ich kann diesen Fehler in meiner Serveranwendung nicht beheben. Durch Kopieren der URL, die ich in meinem Dienst anfordere, in einen Browser werden die Feeds auf dem Server-PC abgerufen. Aber warum wird beim Ausführen eines Windows-Dienstes (services.msc) eine Ausnahme ausgelöst? Hoffe, jemand kann mir helfen, dieses Problem zu lösen.

BEARBEITEN:

Bevor ich versuchte, den Proxy-Benutzernamen und das Kennwort für die Proxy-Anmeldeinformationen sowie die Proxy-Adresse über Konfigurationseinträge anzugeben, funktionierte dies zu diesem Zeitpunkt einwandfrei. Unser Plan ist es jedoch, die Last der Bereitstellung der Proxy-IP-Adresse, des Benutzernamens und des Kennworts für jedes Mal zu beseitigen. Daher wollten wir es über Standard-Netzwerkanmeldeinformationen geben, die im System gespeichert sind, um den Proxy mit den oben angegebenen Schritten zu umgehen.

War es hilfreich?

Lösung

Haben Sie in Ihrem Unternehmen einen Proxyserver eingerichtet, für den eine Authentifizierung erforderlich ist?

Versuchen Sie, den Dienst mit Ihrer Identität anstelle der integrierten (Netzwerkdienst, lokales System) auszuführen, und prüfen Sie, ob dies hilfreich ist.

BEARBEITEN:

Ich denke, es könnte davon abhängen, wie der Proxy konfiguriert ist, aber um die Standard-Proxy-Einstellungen zu verwenden, muss der Dienst möglicherweise unter einem Domänenkonto ausgeführt werden, auf dem diese Eigenschaften korrekt festgelegt sind.Verwenden Sie als bewährte Methode natürlich ein dediziertes Dienstkonto anstelle Ihres eigenen.

Vielleicht möchten Sie auch einen Blick darauf werfen, wie Sie Proxy in der Konfigurationsdatei konfigurieren anstatt es hart zu codieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top