WCF-Http-Dienste ohne Administratorberechtigungen starten und URL-Reservierung per PowerShell

Wer einen WCF-Dienst per HTTP/HTTPS verwenden möchte, muss die Service-Anwendung (die, die den Dienst hostet) mit Administratorberechtigungen starten. Der Hintergrund ist, dass die verwendete Http/Https-Adresse beim Systemdienst Https.sys registriert werden muss. Und das ist nur per Administratorberechtigungen möglich.

Wird diese URL-Registrierung vorab ausgeführt, kann der Dienst auch ohne Administratorberechtigung gestartet werden. Das wird in der Befehlszeile entweder per netsh oder per PowerShell durchgeführt.

Bei netsh kommt es darauf an, dass die Adresse mit einem / beendet wird.

Der folgende Befehl registriert eine URL für einen Webservice für alle Benutzer:

Das Ganze ist unter docs.microsoft.com ausführlich beschrieben:

https://docs.microsoft.com/de-de/dotnet/framework/wcf/feature-details/configuring-http-and-https

Wer statt Netsh einen PowerShell-Befehl verwenden möchte (wofür es eigentlich keinen Grund gibt), muss das vielseitige Carbon-Modul verwenden und diese per Install-Module Carbon -AllowClobber -Force eventuell erst einmal von der PowerShell Gallery installieren.

Dann steht das Kommando Grant-HttpUrlPermission zur Verfügung:

http://get-carbon.org/Grant-HttpUrlPermission.html

Derselbe Aufruf wie bei netsh sieht damit wie folgt aus:

Ein Get-HttpUrlAcl listet alle Url-Berechtigungen auf.

Anschließend, und darauf kommt es bei der ganzen Übung ja an, kann der WCF-Service auch ohne Adminberechtigungen gestartet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.