J'ai un service WCF hébergé dans une application Web (IIS). J'ai besoin d'exposer 1 point final sur wsHttp
et l'autre sur netTcp
. Je suis sur un environnement IIS7 qui me permet d'héberger des services non basés sur HTTP. De toute façon, quand je navigue le. svc
fichier à l'aide d'un navigateur, je reçois l'erreur:WCF hébergé dans une application Web et en mode de compatibilité
The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application
par googler, je réalise que WCF fonctionne en deux modes - mixtes et ASP.NET compatible. Lorsque je demande l'attribut
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Cependant, il semble qu'une fois que j'applique cet attribut à la mise en œuvre du contrat de service, je ne peux pas utiliser une liaison non HTTP.
Comment puis-je le configurer de sorte que:
- Je peux en charge les périphériques non HTTP
- Je peux héberger le service sur une application Web
- Je ne crée pas de multiples services dont une avec aspnet la compatibilité est activée et l'autre est désactivée
Utilisez-vous une fonctionnalité ASP.NET? Si oui, lequel? Peut-il être retiré? –
Pas encore - jusqu'à présent (je ne sais pas si j'utiliserais la session ou le contexte dans le futur). Êtes-vous en train de dire que si je n'utilise aucune fonctionnalité asp.net, je devrais pouvoir désactiver la compatibilité AspNet et l'héberger dans un hébergeur? – DotnetDude
pourquoi ne pas exposer le service en utilisant un service Windows? Je pense que le premier et le second sont impossibles à faire sauf si vous utilisez WAS. –