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:

  1. Suppression et IIS réinstallée
  2. courais le% windir% \ Microsoft.Net \ Framework \ v4.0.30319 \ aspnet_regiis -i -enable
  3. courais le% windir% \ Microsoft.Net \ Framework \ v4.0.30319 \ ServiceModelReg.exe de commande -r.
  4. 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?

Était-ce utile?

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:

HTTP 500 capture d'écran d'erreur du serveur interne

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top