czwartek, 6 września 2007

WCF - rejestracja adresu HTTP na Windows Vista

Podczas odpalania aplikacji hostującej serwis WCF na podanym adresie HTTP (http://localhost:8000/Derivatives/Calculator) na Windows Vista wyskoczył mi wyjątek następującej treści:

HTTP could not register URL http://+:8000/Derivatives/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).

Uh, znowu kwestia braku uprawnień -:)
Najpierw intuicja podpowiedziała mi, by odpalić skompilowany program w trybie administratora (Run As Administrator) i wtedy było ok.

Jednak nie poprzestałem na tym i postanowiłem rozeznać sprawę. Otóż okazuje się, że trzeba nadać uprawnienia dla konta do rejestracji odpowiedniego HTTP URL. W Windows 2003 służyło do tego narzędzie Httpcfg.exe. Jednak w Viście to narzędzie nie jest tak prosto dostępne. Zamiast niego lepiej użyć programu netsh.exe. Zgodnie z podawanymi opisami wpisałem dla swojej aplikacji:

netsh>http add urlacl url=http://+:8000/ user=Marcin

Teraz powinno zadziałać. I ... nie zadziałało (z powodu braku uprawnień - sic!). Odpaliłem netsh w trybie administratora, powtórzyłem komendę i nareszcie poszło.

Jak widać kwestia uprawnień Visty pojawia się niemal na każdym kroku (inny przykład z mej autopsji - aby zarejestrować ASP.NET na IIS-ie też trzeba odpalić konsolę w trybie administratora).

Brak komentarzy: