2015-12-17 57 views
10

Miałem wrażenie, że możemy uruchomić aplikację na żywo na serwerze, który będzie nasłuchiwał i serwował dane (strony internetowe, gdyby były w tym celu). W ten sposób nie będziemy musieli hostować naszych aplikacji internetowych w usługach IIS. Zawsze myślałem, że to właśnie oznacza "hosting aplikacji internetowych w swoim własnym procesie".ASP.net 5 Self-Hosted na Live Windows Server - odmowa dostępu EACCES?

Tutaj jest częścią mojego project.json że myślę, że jest istotne:

"dependencies": { 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5010" 
    }, 

Gdybym poszedł do wierszu polecenia dir do katalogu głównego projektu, a następnie pobiegł DNX sieci, tak, w istocie aplikacja konsolowa jest uruchomiona i mógłbym przejść do przeglądarki i wpisać http://localhost:5010 i zobaczyć stronę internetową.

Ale kiedy zmienię ten URL na rzeczywisty URL (i tak, mam już DNS wskazujący na mój serwer dla tego adresu URL), otrzymam komunikat o błędzie EACCES permission denied.

Jeśli możemy "samemu hostować", ale tylko z localhost, wydaje się, że tylko dobre dla rozwoju lokalnego. Dlaczego mam możliwość "samodzielnego hostingu w moim własnym procesie", jeśli nie może być on dostępny na żywo/na produkcji?

Co powinienem zrobić? Czy muszę ustawić pewne uprawnienia do określonego folderu? Który użytkownik/grupa, jakie uprawnienia i który folder? Próbowałem IIS_IUSRS w katalogu głównym projektu i oczywiście to nie działa, ponieważ chciałem i tak obejść IIS.

Każda pomoc zostanie bardzo doceniona.

+1

Czy zorientowaliśmy się jeszcze? Czy to możliwe, że inna aplikacja korzysta już z tego portu? Podobnie jak aplikacja w IIS, uruchomiona jest inna instancja aplikacji? Czy można wkleić cały dziennik wyjściowy z konsoli? –

+0

Myślę, że możesz mieć rację. Jest taka sama strona zarejestrowana w IIS, że próbuję nakłonić Kestrela do wysłuchania. Zajrzę do tego, a ja wrócę do ciebie, kiedy coś znajdę. –

+1

Po prostu miałem podobny błąd i zmiana portu rozwiązała go. IIS miał kilka aplikacji w porcie 80. Dzięki, @JijieChen –

Odpowiedz

14

Dla każdego ze znalezieniem to pytanie nowszym:

Po uruchomieniu serwera Kestrel, trzeba upewnić się, że nie ma już coś nasłuchuje na tym porcie, w przeciwnym razie nie będzie w stanie uruchomić. IIS jest oczywistym winowajcą, jeśli próbujesz hostować coś na standardowym http (port 80). Musisz zatrzymać wszystko, co działa na tym porcie, lub użyć go do przekazania ruchu na serwer Kestrel.

Więcej informacji na temat hostingu ASP.NET 5 projektów bezpośrednio w IIS można znaleźć tutaj: https://docs.asp.net/en/latest/publishing/iis.html