Udostępnij za pośrednictwem


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.