Hostuję usługę WCF w IIS7 na Windows Server 08, sp2. Usługa jest hostowana jako własna strona internetowa i jest udostępniana przez punkt końcowy NET.TCP. Usługa działa doskonale, dopóki nie zostanie wydane polecenie restart/iisreset.restart/iisreset wyłącza protokół NET.TCP?
Po ponownym uruchomieniu lub iisreset, kiedy wykonuję wywołanie serwisowe, pojawia się następujący błąd: "System.ServiceModel.EndpointNotFoundException: Nie można wysłać komunikatu, ponieważ usługa pod adresem punktu końcowego" net.tcp: // [witryna]/[nazwa_usługi] .svc "jest niedostępna dla protokołu adresu."
Dziennik zdarzeń serwera pokazuje następujący błąd: "Wystąpił błąd podczas próby odczytania i utworzenia instancji skonfigurowanego parametru ProcessHandlerType. Wyjątek: System.ArgumentException Komunikat: Nieznany identyfikator protokołu "NET.TCP". StackTrace: co System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel (String protocolId, IListenerChannelCallback listenerChannelCallback) "
Pytanie: Jak mogę rozwiązać ten problem? Dlaczego protokół NET.TCP jest wyłączony po zresetowaniu? Czy to błąd? Czy brakuje mi jakiejś konfiguracji?
szczegóły konfiguracji IIS: - Server 08 i 08 R2 - Wiązania: http, Net.TCP (808: *) - EnabledProtols: http, Net.TCP. - Tożsamość dla aplikacji appPool witryny jest ustawiona dla określonego użytkownika.
dostępny Przykładowy kod tutaj: http://drop.io/wcfTcpSampleService
Dzięki
Hacky (niedogodny) Obejście problemu: Mogę go uruchomić ponownie, jeśli (1) usunę NET.TCP z witryny EnabledProtocols (2) iisreset (3) doda NET.TCP z powrotem do strony EnabledProtocols. Witryna nadal działa, dopóki nie zostanie wydana ponownie. Program IIS robi coś, gdy dodaję NET.TCP do EnabledProtocols, który nie ma miejsca, gdy IIS uruchamia się po dodaniu NET.TCP. –
Kiedy to się dzieje, jaki jest stan usługi Listner Net.Tcp? Do czego jest ustawiony typ uruchamiania usługi Net.Tcp Listner? Czy w dziennikach zdarzeń System lub Application jest coś ważnego? –
Adapter odbiornika Net.Tcp jest uruchamiany (typ uruchamiania: Auto). Błąd w dzienniku zdarzeń to "Wystąpił błąd podczas próby odczytania i utworzenia instancji skonfigurowanego obiektu ProcessHandlerType. Wyjątek: Wyjątek System.ArgumentException Komunikat: Nieznany identyfikator protokołu "NET.TCp". StackTrace: w System.Web.Hosting.ProcessHost.StartProcessProtocolListenerChannel (String protocolId, IListenerChannelCallback listenerChannelCallback) ' –