5

Próbuję zorganizować nowy projekt ASP.NET 5 WebAPI w IIS, a używam ASP.NET 5 RC 1 Runtime. Projekt, którego używam, jest standardowym wygenerowanym szablonem dla nowego projektu WebAPI ASP.NET 5. (Bez zmian kodu.)Hosting ASP.NET 5 WebAPI w IIS przy użyciu wirtualnego katalogu/aplikacji

Udało mi się opublikować projekt za pomocą wiersza poleceń i mogę uruchomić aplikację w nowej witrynie internetowej przy użyciu określonego portu, na przykład localhost: 12345. Na przykład, dostęp do localhost: 12345/api/values ​​zwraca dane values.json z szablonu projektu.

Jednak, gdy próbuję użyć folderu IIS aplikacji dla projektu, otrzymuję błąd 404. Innymi słowy localhost: 12345/WebApi1/api/values ​​zwraca błąd 404. Ale widzę, że Kestrel działa na losowym porcie w Podglądzie zdarzeń, a gdy uzyskuję dostęp do danych na tym porcie, otrzymuję value.json z powrotem, więc wiem, że Kestrel działa.

Czy jest coś specjalnego, które należy zrobić, aby projekt WebAPI ASP.NET 5 Praca w folderze aplikacji IIS pod stronę WWW?

Nota boczna: jeśli użyję --server.urls do ustawienia portu dla Kestrel, to działa zarówno na żądanym porcie, jak i losowym porcie zalogowanym w Podglądzie zdarzeń. (Więc to jest rzeczywiście dostępny z Kestrel z 2 adresów URL, a nie pojedynczego jednym skonfigurowanym przez --server.urls.) Opinie

+2

Sprawdź to: http://stackoverflow.com/a/33900458/1184056 –

+0

Dziękuję. To rzeczywiście naprawiło problem z aplikacją IIS i teraz działa. – Jeff

Odpowiedz

3

Kiran Challa za powyżej rzeczywiście ma rozwiązać problem. Umieścić to w sposób skonfigurować w Startup.cs

app.Map("/IISApplicationFolderName", (myAppPath) => this.ConfigureApp(myAppPath, env, loggerFactory)); 

gdzie IISApplicationFolderName to nazwa folderu aplikacji IIS, które chcesz obsługiwać pod. Reszta kodu konfiguracji przechodzi do nowej metody ConfigureApp, ponieważ delegujesz konfigurację do tej metody.

Wygląda to również być tymczasowy łata aż ASP.NET 5 RC2 jest zwolniony.

Powiązane problemy