J'ai créé un service WCF (.NET 3.5) qui saisit des données à partir d'un db et renvoie une liste d'objets. Cela fonctionne très bien. Je l'ai testé en utilisant l'application WCFTestClient et obtenu les résultats souhaités.Comment modifier mon service WCF pour qu'il fonctionne avec les pages ASP.NET?
Maintenant, j'ai essayé de créer une application Web ASP.NET et de consommer le service. Après avoir activé <serviceDebug includeExceptionDetailInFaults="true"/>
dans le fichier de configuration, le message d'erreur est "Référence d'objet non définie sur une instance d'un objet". Comment puis-je modifier le service pour qu'il fonctionne avec ASP.NET?
Merci!
Mise à jour 1 - J'ai créé une référence au service. Lorsque j'ai exécuté mon application de test très basique, basée sur l'exemple de code affiché sur la page Web par défaut du service, j'ai reçu le message "Référence de l'objet non défini sur une instance d'un objet".
Le service renvoie les résultats corrects lorsque j'utilise l'utilitaire WCF Test Client fourni avec Visual Studio. Lorsque j'essaie d'utiliser le code suivant, le tout dans l'événement page_load, j'obtiens le message de référence d'objet.
PhoneNumberServiceClient client = new PhoneNumberServiceClient();
// Use the 'client' variable to call operations on the service
List<PhoneNumber> phones = client.GetPhoneNumbers();
// Always close the client.
client.Close();
Je vais essayer d'obtenir des informations de débogage supplémentaires.
Nous avons besoin d'un peu plus d'informations. Avez-vous ajouté une référence de service à l'application ASP.net? Pouvez-vous ajouter un point d'arrêt du côté du serveur et parcourir votre code pour voir ce qui se passe? – JSmyth
Un service WCF ne nécessite aucune modification pour fonctionner avec des pages ASP.NET. Quelque chose d'autre est faux. Veuillez publier l'exception complète que vous recevez sur le client. Placez un bloc try/catch autour du code et dans le bloc catch, récupérez la valeur de ex.ToString(). Postez ça ici. Aussi, dites ce qui se passe quand 'includeExceptionDetailInFaults' est faux. –