2016-08-17 2 views
0

Ich verwende ein C# WebApi. Ich habe eine Service-Referenz zu einem WebService hinzugefügt. Der WebService benötigt ein vorhandenes Zertifikat, das ich in mein Projekt aufgenommen habe.Problem mit WSDL/Soap

Jetzt ist das Problem, dass alles so funktioniert, wie es sollte, wenn ich es auf meinem lokalen Rechner laufen lasse. Wenn ich es jedoch zum Leben ausspare, wird es nicht funktionieren. Sobald ich es live starte, kann die Anwendung die .pfx-Datei nicht finden, die definitiv im Projekt enthalten ist und an der richtigen Stelle (Projektstamm).

Ich habe versucht HttpContext.Current.Request.MapPath, HttpContext.Current.Server.MapPath, jedoch keiner von beiden scheint zu funktionieren, da es immer noch sagt, dass es die angegebene Datei nicht finden kann.

Ich verstehe einfach nicht, wie es auf meiner lokalen Maschine einwandfrei funktionieren kann, aber dann funktioniert es nicht live.

Kann mir jemand helfen? Es macht mich verrückt.

Update: Okay, ich habe festgestellt, dass die PFX-Datei nicht das Problem ist. Ich habe überprüft, ob die Datei mit 'File.Exists' gefunden werden kann und die Datei gefunden werden kann. Ich habe festgestellt, dass der Fehler auftritt, wenn ich versuche, ein neues X509Certificate aus dem angegebenen Pfad zu erstellen

X509Certificate cert = neue X509Certificate (pfxPath, pfxPassword);

wo der PfxPath wäre der Pfad zu der Datei, die ich gerade bestätigt habe existiert.

Antwort

1

Nun, ich habe es herausgefunden. Es scheint, dass ich die Option "Benutzerprofil laden" in den erweiterten Einstellungen des Anwendungspools für meine Website auf "true" setzen musste.

Es funktioniert jetzt wie beabsichtigt!