2010-10-08 6 views
0

J'ai un service wcf entièrement fonctionnel où je peux effectuer des opérations CRUD en utilisant jQuery sur le client. Je souhaite que cette petite application de service soit portable, j'essaie donc d'éviter les paramètres de l'application ou du fichier web.config (par exemple, les points de terminaison d'adresse spécifiques). J'ai compilé mon application de service dans un petit fichier dll et l'ai essayé dans plusieurs projets différents hébergés sur différentes adresses web. Tout fonctionne bien.Quelles sont les ramifications d'un point de terminaison non configuré (mais fonctionnel)?

Le seul paramètre que j'ai mis dans le fichier web.config était pour aspNetCompatibilityEnabled car j'utilise l'authentification par formulaire. Je n'ai pas défini de nom ou d'espace de nom pour mon contrat de service et mon fichier app.config est vide sans une chaîne de connexion. Lorsque je tape l'adresse de mon fichier .svc, j'obtiens l'erreur 'endpoint not found'. Cependant, mon service est entièrement fonctionnel lorsque j'utilise les UriTemplates définis dans mes contrats d'exploitation. Quelles sont les ramifications de cela? Je ne me soucie pas d'exposer mes objets de données ou mes méthodes sur le fichier .svc. J'ai juste besoin de ce service pour être portable et ne pas exploser en raison d'une erreur imprévue.

Un optimisme prudent. Après une enquête plus poussée, il apparaît que mon exemple ci-dessus est le comportement par défaut pour WCF. Il ya un bon article de MS qui l'explique here.

Répondre

1

Je ne suis pas sûr de ce que vous voulez dire par portable. Votre service est en dll, qui peut être utilisé dans n'importe quelle application web. Ensuite, cela dépend de votre version de .NET Framework.

Dans .NET 3.5, vous devez héberger le service dans un fichier .svc et le configurer (service, points de terminaison, comportements, Compatibilité AspNet) dans le fichier de configuration ou dans le code. Dans .NET 4.0, vous pouvez tirer parti du modèle de configuration simple qui permet de créer des points de terminaison pour vous en fonction d'autres informations fournies. Vous pouvez héberger le service dans un fichier .svc, par activation basée sur la configuration ou par itinéraire de service. Dans tous les cas, il est important d'utiliser WebServiceHostFactory pour permettre la création automatique de point de terminaison à l'aide de WebHttpBinding. Vous avez seulement besoin de configurer AspNetCompatibility. Si vous devez spécifier le comportement webHttp, vous pouvez également le placer dans la configuration sans spécifier le nom du comportement. Un tel comportement sera pris par défaut pour tous les services (également impossible dans .NET 3.5).

Dans les deux cas, vous n'avez pas besoin de configurer l'adresse de base car celle-ci provient toujours de l'hébergement de l'application Web.

+0

Votre réponse résume essentiellement le lien que j'ai ajouté ci-dessus. Je suis nouveau à ceci et beaucoup d'exemples sont de 3.5. 4.0 supprime la nécessité de configurer les points de terminaison dans les fichiers de configuration. Merci. – trevorc

Questions connexes