IIS 7.5 Połączenia Api nie będą działać (HTTP 404)


1

Interfejs API, który buduję, jest uruchamiany w usługach IIS express w Visual Studio i na serwerze testowym, który używa tych samych usług IIS, co serwer na żywo. Zarówno w przypadku usług IIS Express, jak i serwera testowego działa dobrze, ale kiedy umieścimy go na serwerze rzeczywistym, zwraca odpowiedź 404.

Do tej pory znalazłem ten artykuł: Rozwiąż 404 w IIS Express i znalazłem wyjaśnienie w tym artykule: Filtrowanie żądań w IIS 7

Wszystkie ustawienia są o ile wiem domyślne, ale czego potrzebuję, aby sprawdzić więcej błędów niż czasowniki?

EDYTOWAĆ: Wygląda na to, że ma to związek z ustawieniem w web.config. Tryb zarządzanego rurociągu jest ustawiony na Zintegrowany (tryb klasyczny spowoduje również ten problem) i dodał: <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> źródło . Teraz api zwraca błąd http 500, ale to jest coś, co muszę naprawić w kodzie.


Jakie składniki IS związane z ASP zostały zainstalowane?
Frank Thomas

Zainstalowaliśmy .net 2.0 i 4.0. Api używa obecnie .net 4.0
Quispie

Mam na myśli komponenty usługi World Wide Web Service w instalatorze funkcji systemu Windows (na stacjach roboczych w appwiz.cpl - & gt; Włącz lub wyłącz funkcje systemu Windows - & gt; Usługi World Wide Web). W szczególności upewnij się, że wspólne funkcje HTTP - & gt; Zawartość statyczna jest zaznaczona Oprócz funkcji tworzenia aplikacji - & gt; Rozszerzalność .Net, ASP.NET i obie funkcje ISAPI. Ponadto .net 4 pojawia się jako opcja dla pul aplikacji? jeśli nie działa aspnet_regiis -r (z wiersza poleceń Visual Studio), aby zarejestrować mapowanie skryptów / handlerów dla .net.
Frank Thomas

Zainstalowałem .net 4.0 za pomocą polecenia aspnet_regiis -ir i możliwe jest wybranie go z pul aplikacji. Zainstalowana jest zawartość statyczna, rozszerzalność .Net, ASP.NET i obie funkcje ISAPI.
Quispie

Odpowiedzi:


0

Po zapytaniu google od wieków znalazłem to teren.

Na końcu strony musiałem ustawić ścieżkę svc-Integrated-4.0 "*" zamiast domyślnego "*.svc" to rozwiązało problem dla mnie!

Edytuj kod @Scott H Web.config:

<configuration>
 <system.webServer>
  <handlers>
   <remove name="svc-Integrated-4.0" />
   <add name="svc-Integrated-4.0" path="*" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
  </handlers>
 </system.webServer>
</configuration>

1
Link wydaje się uszkodzony, możesz wypełnić swoją odpowiedź?
Scott H
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.