Udostępnij za pośrednictwem


Rozwiązywanie problemów z dokumentacją programu Windows Communication Foundation (WCF) lub Usługi danych programu WCF w programie Visual Studio

Dotyczy: Visual Studio

W tym artykule wymieniono rozwiązania typowych problemów, które mogą wystąpić podczas pracy z odwołaniami do programu Windows Communication Foundation (WCF) lub Usługi danych programu WCF w programie Visual Studio.

Jeśli chcesz zaktualizować lub usunąć odwołanie do usługi, zobacz Dodawanie, aktualizowanie lub usuwanie odwołania do usługi danych WCF.

Błąd, gdy nie podano żadnego adresu usługi

Po wybraniu przycisku Przejdź bez adresu może zostać wyświetlony komunikat o błędzie z komunikatem "Wprowadź adres usługi". Aby rozwiązać ten problem, zidentyfikuj adres usługi i wprowadź go.

  • Jeśli jest to usługa w rozwiązaniu, możesz użyć przycisku Odnajdź , aby go znaleźć i wybrać, a następnie ponownie spróbować użyć przycisku Go .
  • Jeśli jest to usługa hostowana gdzieś w Internecie, dodaj ją, postępjąc zgodnie z instrukcjami podanymi w dokumencie Dodawanie odwołania do usługi WCF.

Błąd podczas zwracania danych z usługi

Po zwróceniu DataSet elementu lub DataTable z usługi może zostać wyświetlony wyjątek "Przekroczono maksymalny limit przydziału rozmiaru dla komunikatów przychodzących". Domyślnie właściwość niektórych powiązań jest ustawiona na stosunkowo małą wartość, MaxReceivedMessageSize aby ograniczyć narażenie na ataki typu "odmowa usługi". Możesz zwiększyć tę wartość, aby zapobiec wyjątkowi. W celu uzyskania więcej informacji, zobacz następujący temat: MaxReceivedMessageSize.

Aby naprawić ten błąd:

  1. W Eksplorator rozwiązań kliknij dwukrotnie plik app.config, aby go otworzyć.
  2. Znajdź właściwość MaxReceivedMessageSize i zmień ją na większą wartość.

Nie można znaleźć usługi w moim rozwiązaniu

Po wybraniu przycisku Odnajdź w oknie dialogowym Dodawanie odwołań do usługi co najmniej jeden projekt biblioteki usług WCF w rozwiązaniu nie jest wyświetlany na liście usług. Ten problem może wystąpić, jeśli biblioteka usług została dodana do rozwiązania, ale nie została jeszcze skompilowana.

Aby naprawić ten błąd:

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt Biblioteka usług WCF.
  2. Wybierz pozycję Kompiluj.

Błąd podczas uzyskiwania dostępu do usługi za pośrednictwem pulpitu zdalnego

Gdy użytkownik uzyskuje dostęp do usługi WCF hostowanej w Sieci Web za pośrednictwem połączenia pulpitu zdalnego, a użytkownik nie ma uprawnień administracyjnych, używane jest uwierzytelnianie NTLM. Jeśli użytkownik nie ma uprawnień administracyjnych, użytkownik może otrzymać następujący komunikat o błędzie: "Żądanie HTTP nie ma autoryzacji ze schematem uwierzytelniania klienta "Anonimowy". Nagłówek uwierzytelniania otrzymany z serwera to "NTLM".

Aby naprawić ten błąd:

  1. W projekcie witryny internetowej otwórz strony Właściwości .
  2. Na karcie Opcje uruchamiania wyczyść pole wyboru Uwierzytelnianie NTLM .

Uwaga

Uwierzytelnianie NTLM należy wyłączyć tylko dla witryn internetowych, które zawierają wyłącznie usługi WCF. Zabezpieczenia usług WCF są zarządzane za pośrednictwem konfiguracji w pliku web.config . Dzięki temu uwierzytelnianie NTLM jest niepotrzebne.

Ustawienie poziomu dostępu dla wygenerowanych klas nie ma wpływu

Ustawienie opcji Poziom dostępu dla wygenerowanych klas w oknie dialogowym Konfigurowanie odwołań do usługi na Wewnętrzny lub Znajomy może nie zawsze działać. Mimo że opcja wydaje się być ustawiona w oknie dialogowym, wynikowe klasy obsługi są generowane z poziomem Publicdostępu . Jest to znane ograniczenie niektórych typów, takich jak serializowane przy użyciu XmlSerializerpolecenia .

Błąd podczas debugowania kodu usługi

Po przejściu do kodu usługi WCF z kodu klienta może zostać wyświetlony błąd związany z brakującymi symbolami. Może się zdarzyć, gdy usługa będąca częścią rozwiązania została przeniesiona lub usunięta z rozwiązania.

Po pierwszym dodaniu odwołania do usługi WCF, która jest częścią bieżącego rozwiązania, między projektem usługi a projektem klienta usługi jest dodawana jawna zależność kompilacji. Gwarantuje to, że klient zawsze uzyskuje dostęp do aktualnych plików binarnych usługi, co jest szczególnie ważne w przypadku scenariuszy debugowania, takich jak przechodzenie z kodu klienta do kodu usługi.

Jeśli projekt usługi zostanie usunięty z rozwiązania, ta jawna zależność kompilacji zostanie unieważniona. Program Visual Studio nie może już zagwarantować, że projekt usługi zostanie utworzony w razie potrzeby.

Aby naprawić ten błąd, ręcznie skompiluj projekt usługi:

  1. Na karcie Narzędzia wybierz pozycję Opcje.
  2. W oknie dialogowym Opcje rozwiń węzeł Projekty i rozwiązania, a następnie wybierz pozycję Ogólne.
  3. Upewnij się, że zaznaczono pole wyboru Pokaż zaawansowane konfiguracje kompilacji , a następnie wybierz przycisk OK.
  4. Załaduj projekt usługi WCF.
  5. W oknie dialogowym Configuration Manager ustaw opcję Konfiguracja aktywnego rozwiązania na debugowanie. Aby uzyskać więcej informacji, zobacz Jak tworzyć i edytować konfiguracje.
  6. W Eksplorator rozwiązań wybierz projekt usługi WCF.
  7. W menu Kompilacja wybierz pozycję Ponownie skompiluj , aby ponownie skompilować projekt usługi WCF.

Usługi danych programu WCF nie są wyświetlane w przeglądarce

Podczas próby wyświetlenia reprezentacji xml danych w usłudze danych WCF program Internet Explorer może błędnie interpretować dane jako źródło danych RSS. Upewnij się, że opcja wyświetlania kanałów informacyjnych RSS jest wyłączona.

Aby naprawić ten błąd, wyłącz kanały informacyjne RSS:

  1. W programie Internet Explorer w menu Narzędzia wybierz pozycję Opcje internetowe.
  2. Na karcie Zawartość w sekcji Kanały informacyjne wybierz pozycję Ustawienia.
  3. W oknie dialogowym Ustawienia kanału informacyjnego wyczyść pole wyboru Włącz widok do czytania kanału informacyjnego , a następnie wybierz przycisk OK.
  4. Wybierz przycisk OK , aby zamknąć okno dialogowe Opcje internetowe .