fragen stichworte

WCF-Dienst in IIS7 mit Administratorrechten gehostet?

Wie erteile ich einem laufenden WCF-Dienst, der in IIS7 gehostet wird, Administratorrechte?

Das Problem ist, mein Code funktioniert gut in einer Testkonsolenanwendung, die als Administrator ausgeführt wird, aber derselbe Code, der vom WCF-Dienst in IIS7 verwendet wird, schlägt fehl. Wenn ich dieselbe Konsolentestanwendung ohne Administratorrechte ausführe, schlägt der Code fehl.

Wie kann ich einem WCF-Dienst, der in IIS7 gehostet wird, Administratorrechte erteilen? Erteile ich Administratorrechte für den IIS7-Dienst? Kann ich einem bestimmten WCF-Service Rechte erteilen? Wie kann ich auf IIS7 oder einer bestimmten Website als Administrator ausführen ausgeführt werden?

Danke!

(Das ist die Frage, hier ist eine detailliertere Beschreibung einer Situation: Ich versuche, mit einer Touchless-Bibliothek Frames von einer Webcam in eine JPG-Datei aufzunehmen, und das kann ich über eine Konsolenanwendung mit Administratorrechten. Wenn ich dieselbe Konsolen-App ohne Administratorrechte ausführe, kann ich nicht auf eine Webcam im Code zugreifen. Dasselbe passiert in einem WCF-Dienst mit demselben Code.)

antworten

Die Berechtigungen, unter denen Ihr WCF-Dienst ausgeführt wird, sind höchstwahrscheinlich die Anwendungspoolidentität. Seien Sie zunächst vorsichtig, wenn Sie Administratorrechte für einen App-Pool erteilen. Ich würde diesen Service in einen eigenen App-Pool unterteilen, wenn Sie den Footprint dessen, was Administratorrechte benötigt, minimieren können.

Besuchen Sie den App-Pool und gehen Sie zu erweiterten Einstellungen im Aktionsbereich. Sie können dort Ihren eigenen benutzerdefinierten Administrator festlegen.

Außerdem besteht die Möglichkeit, dass ein Teil des Dienstes als Konto des anonymen Benutzers ausgeführt wird. Um das zu ändern, bearbeiten Sie die Site und dann die Autorisierung -> anonym. Legen Sie fest, dass die App-Pool-Identität verwendet wird. Auf diese Weise läuft alles unter der im App-Pool festgelegten Identität.