Ograniczenia debugowania WCF
Istnieją trzy sposoby rozpoczęcia debugowania usługi WCF:
Debugujesz proces klienta, który wywołuje usługę. Debuger przechodzi do usługi. Usługa nie musi znajdować się w tym samym rozwiązaniu co aplikacja kliencka.
Debugujesz proces klienta, który wysyła żądanie do usługi. Usługa musi być częścią rozwiązania.
Dołączanie do procesu służy do dołączania do usługi, która jest aktualnie uruchomiona. Debugowanie rozpoczyna się wewnątrz usługi.
W tym temacie opisano ograniczenia dotyczące tych scenariuszy.
Ograniczenia dotyczące przechodzenia do usługi
Aby przejść do usługi z poziomu debugowania aplikacji klienckich, należy spełnić następujące warunki:
Klient musi wywołać usługę przy użyciu synchronicznego obiektu klienta.
Operacja kontraktu nie może być jednokierunkowa.
Jeśli serwer jest asynchroniczny, nie można wyświetlić pełnego stosu wywołań podczas wykonywania kodu wewnątrz usługi.
Debugowanie musi być włączone przy użyciu następującego kodu w pliku app.config lub Web.config:
<system.web> <compilation debug="true" /> </system.web>
Ten kod musi zostać dodany tylko raz. Ten kod można dodać, edytując plik config lub dołączając go do usługi przy użyciu polecenia Dołącz do procesu. W przypadku używania funkcji Dołączanie do przetwarzania w usłudze kod debugowania jest automatycznie dodawany do pliku .config. Następnie możesz debugować i przechodzić do usługi bez konieczności edytowania pliku config.
Ograniczenia dotyczące przechodzenia poza usługę
Wyjście z usługi i z powrotem do klienta ma te same ograniczenia opisane w przypadku przechodzenia do usługi. Ponadto debuger musi być dołączony do klienta. Jeśli debugujesz klienta i przechodzisz do usługi, debuger pozostaje dołączony do usługi. Jest to prawda, czy klient został uruchomiony przy użyciu polecenia Rozpocznij debugowanie , czy dołączony do klienta przy użyciu dołączania do procesu. Jeśli rozpoczęto debugowanie przez dołączenie do usługi, debuger nie jest jeszcze dołączony do klienta. W takim przypadku, jeśli musisz wyjść z usługi i z powrotem do klienta, musisz najpierw użyć polecenia Dołącz do procesu , aby dołączyć do klienta ręcznie.
Ograniczenia dotyczące automatycznego dołączania do usługi
Automatyczne dołączanie do usługi ma następujące ograniczenia:
Usługa musi być częścią rozwiązania Visual Studio, które debugujesz.
Usługa musi być hostowana. Może to być część projektu witryny sieci Web (System plików i HTTP), projektu aplikacji internetowej (systemu plików i protokołu HTTP) lub projektu biblioteki usług WCF. Projekty biblioteki usług WCF mogą być bibliotekami usług lub bibliotekami usługi przepływu pracy.
Usługa musi być wywoływana z klienta WCF.
Debugowanie musi być włączone przy użyciu następującego kodu w pliku app.config lub Web.config:
<system.web> <compilation debug="true" /> <system.web>
Self-Hosting
Samoobsługowa usługa to usługa WCF, która nie działa wewnątrz usług IIS, hosta usługi WCF lub serwera deweloperów ASP.NET. Aby uzyskać informacje na temat debugowania samoobsługowej usługi, zobacz How to: Debug a Self-Hosted WCF Service (Instrukcje: debugowanie samoobsługowej usługi WCF).
Jeśli zostanie wyświetlony komunikat o błędzie "Nie można automatycznie wejść na serwer". Napraw instalację programu Visual Studio, aby spróbować rozwiązać ten problem. Może się tak zdarzyć, jeśli zainstalujesz program Visual Studio przed zainstalowaniem ASP.NET.