2010-06-12 14 views
12

Utworzono usługę OData/WCF przy użyciu programu Visual Studio 2010 w systemie Windows XP SP3 z zainstalowanymi wszystkimi zainstalowanymi bieżącymi poprawkami.Usługa danych OData/WCF - Błąd HTTP 500

Po kliknięciu "Wyświetl w przeglądarce" usługa otwiera się i widzę 3 tabele z mojego modelu EF. Jednak gdy dodaję nazwę tabeli ("Polecenia" w tym przypadku) na końcu ciągu zapytania, zamiast wyświetlać dane z tabeli, otrzymuję błąd HTTP 500. (Ten błąd (błąd HTTP wewnętrznego serwera HTTP 500) oznacza, że ​​odwiedzana witryna zawierała problem z serwerem, który uniemożliwiał wyświetlanie strony internetowej.).

Podążałem nie tylko za przykładami z 2 stron, ale także próbowałem uruchomić przykładową aplikację, którą wysłał mi plakat bloga (który działa na jego komputerze), i nadal nie mam szczęścia.

blog post jest w Exposing OData from an Entity Framework Model

Czy ktoś ma pomysł dlaczego tak się występującą i jak go rozwiązać?

Oto wyjściowy "Podgląd":

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
- <service xml:base="http://localhost:1883/VistaDBCommandService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app"> 
- <workspace> 
    <atom:title>Default</atom:title> 
- <collection href="Commands"> 
    <atom:title>Commands</atom:title> 
    </collection> 
- <collection href="Databases"> 
    <atom:title>Databases</atom:title> 
    </collection> 
- <collection href="Statuses"> 
    <atom:title>Statuses</atom:title> 
    </collection> 
    </workspace> 
    </service> 

=========================== ==

Dzięki

Eric

============

Aktualizacja:

W celu uzyskania tej pracy, mam:

  1. wyjęta i ponownie zainstalowany IIS
  2. prowadził% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis -i -enable polecenia
  3. Wykonano komendę% WINDIR% \ Microsoft.Net \ Framework \ v4.0.30319 \ ServiceModelReg.exe -r.
  4. Stworzyłem nowe rozwiązanie i bardzo starannie postępowałem zgodnie z instrukcjami, aby upewnić się, że I nic nie zepsuło.

Po tym wszystkim nadal otrzymuję ten sam błąd HTTP 500, bez żadnych wpisów w Podglądzie zdarzeń.

Jakieś inne pomysły?

Dzięki,

Eric

Odpowiedz

16

zorientowali się, że mój problem był problem z otwarciem bazy danych. Sposób, w jaki to rozgryzłem, to dodanie następujących elementów do pliku servicename.svc.plik cs w metodzie InitializeService:

config.UseVerboseErrors=true;

Dziękujemy wszystkim, którzy starali się pomóc.

Eric

1

500 zawsze oznacza wystąpił nieobsługiwany wyjątek w serwisie. Przejdź do dziennika zdarzeń systemu Windows, aby zobaczyć, co to za błąd.

+2

John, Nie mam żadnych wpisów w dzienniku zdarzeń. Aby się upewnić, wyczyściłem istniejące zdarzenia (wszystkie informacje - żadne nie związane z aplikacją), a następnie ponownie uruchomiłem aplikację. Takie same wyniki, brak wpisów w dzienniku zdarzeń. Eric – Eric

+0

@Eric: wyglądałeś na serwerze, prawda? –

+1

Tak, używam go lokalnie w moim systemie dev. Eric – Eric

5

config.UseVerboseErrors=true; pomógł mi w znalezieniu się problem. Problem polegał na tym, że używałem uwierzytelniania systemu Windows do połączenia z bazą danych. Po zmianie na SQL Server Authentication wszystko działało dobrze.

0

Jeśli używasz pliku danych programu SQL Server Compact (podobnie jak NorthWind.sdf), musisz nadać uprawnienia do zapisu grupie IUSRS.

Ex: Jeśli używasz NorthWind.sdf w DataDirectory tj YourWeb/App_Data wtedy trzeba dać uprawnienia do zapisu do grupy _IUSRS z IIS konsoli lub z Eksploratora Windows.

1

Można również aktywować Failed Zamówienie śledzenie aplikacji internetowej w IIS

wtedy dostaniesz zobaczyć szczegółowe wykonanie ślad w plikach XML z IIS, gdy wystąpi błąd 500

Jest dobry artykuł tutaj wyjaśniając, jak Instalator nie do żądania Tracing w IIS:

Using Failed Request Tracing to Trace Rewrite Rules

HTH Cédric

Powiązane problemy