OData / WCF Data Service - HTTP 500 Erreur
Question
J'ai créé un service OData / WCF en utilisant Visual Studio 2010 sous Windows XP SP3 avec tous les correctifs actuels installés.
Lorsque je clique sur « vue dans le navigateur », le service ouvre et je vois les 3 tableaux de mon modèle EF. Cependant, quand j'ajouter un nom de table ( « Commandes » dans ce cas) à la fin de la chaîne de requête, plutôt que de voir les données de la table, je reçois une erreur HTTP 500. (Cette erreur (HTTP 500 Internal Server Error) signifie que le site que vous visitez avait un problème de serveur qui a empêché la page d'affichage.) .
Je n'ai pas seulement suivi les exemples de 2 sites, mais ont également essayé de lancer l'exemple d'application que l'affiche de blog m'a envoyé (qui travaille sur sa machine), et je suis encore de ne pas avoir de chance.
Le blog est à l'exposition OData à partir d'un modèle Entity Framework
Est-ce que quelqu'un a une idée pourquoi cela se produit et comment le résoudre?
Voici la sortie du « Afficher dans le navigateur »:
<?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>
Mise à jour:
Dans un effort pour obtenir ce travail, je:
- Suppression et IIS réinstallée
- courais le% windir% \ Microsoft.Net \ Framework \ v4.0.30319 \ aspnet_regiis -i -enable
- courais le% windir% \ Microsoft.Net \ Framework \ v4.0.30319 \ ServiceModelReg.exe de commande -r.
- Création d'une nouvelle solution et suivi très attentivement les instructions pour assurer que je n'a pas gâcher quoi que ce soit.
Après tout cela, je reçois toujours la même erreur HTTP 500, avec aucune entrée d'aucune sorte dans l'Observateur d'événements.
D'autres idées?
La solution
Je me suis dit que mon problème était un problème avec l'ouverture de la base de données. La façon dont je me suis dit qu'il était à ajouter ce qui suit au fichier servicename.svc.cs dans la méthode InitializeService:
config.UseVerboseErrors=true;
Merci à tous ceux qui ont essayé d'aider.
Eric
Autres conseils
config.UseVerboseErrors=true;
m'a aidé à trouver le problème. Le problème était que j'utilisais l'authentification Windows pour la connexion de base de données. Après avoir changé d'authentification SQL Server tout fonctionnait bien.
S'il vous plaît essayer ces conseils de débogage pour voir l'erreur réelle qui est arrivé: http: // blogs.msdn.com/b/phaniraj/archive/2008/06/18/debugging-ado-net-data-services.aspx
500
signifie toujours qu'il y avait une exception non gérée dans le service. Allez voir dans le journal des événements Windows pour voir ce que l'erreur était.
reçu une sortie similaire avec VS2013:
Résolu par la mise à niveau Entity Framework.
Voir la réponse https://stackoverflow.com/a/21028123/2116188 .
Vous pouvez également activer le traçage des demandes ayant échoué pour votre application Web dans IIS
vous obtiendrez détaillée l'exécution de trace dans les fichiers Xml de IIS lorsqu'une erreur se produit 500
Il y a un bon article qui explique ici comment l'installation a échoué dans IIS suivi des demandes:
L'utilisation a échué traçage de trace Règles Réécrire
HTH Cédric
Si vous utilisez le fichier de données SQL Server Compact (comme Northwind.sdf) vous devez donner l'autorisation de fichier d'écriture groupe IUSRS.
Ex.: Si vous utilisez Northwind.sdf à DataDirectory dire yourweb / App_Data alors vous devez donner autorisations d'écriture pour groupe à partir _IUSRS IIS Console ou de l'Explorateur Windows