2011-04-27 6 views
8

J'héberge 2 services Web WCF et 1 service Web .NET standard à partir d'un répertoire d'application. Le service .NET et 1 des services WCF fonctionnent parfaitement; Cependant, l'autre service WCF retourne l'erreur suivante:Problème de configuration du service Web

The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as 'Allowed' or 'Required'.

Les deux services Web WCF ont la ligne

<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _ 

et le fichier web.config a

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

Pour ajouter plus confusion dans le mélange, quand je change

AspNetCompatibilityRequirementsMode.Allowed 

à

AspNetCompatibilityRequirementsMode.Required 

le service fonctionne très bien.

En outre, le changement

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

à

<serviceHostingEnvironment aspNetCompatibilityEnabled="false" /> 

dans le web.config permet également tous les services Web à la fonction.

Ce problème se présente à la fois sur IIS7 et sur notre environnement de stockage intermédiaire hébergé sur SBS2003 exécutant IIS6.

Merci d'avance pour toute votre aide.
Jake

MISE À JOUR:
j'ai pu le faire fonctionner en supprimant l'application sur mon système de développement; Toutefois, le problème persiste sur notre serveur de transfert, même après la suppression de l'application et sa recréation.

TRAVAIL AUTOUR:

  1. Supprimer l'application de IIS
  2. Recréer le direcotry
  3. Créer un nouveau pool d'applications
  4. Dans les propriétés du direcotry, créer l'application et l'associer au nouveau pool d'applications.

Quelle douleur.

+1

Postez ceci comme réponse et marquez-le comme réponse s'il vous plaît. –

+0

Ce n'est pas la solution. C'est tout simplement un travail horrible, et le problème s'est de nouveau présenté sur mon serveur live. Est-ce que quelqu'un a une vraie solution à ce problème, ou une idée de ce qui cause cela? –

Répondre

0

TRAVAIL AUTOUR:

  • Supprimer l'application de IIS
  • Recréer le direcotry
  • Créer un nouveau pool d'applications
  • Dans les propriétés du direcotry, créez l'application et associée à le nouveau pool d'applications.
3

Vous ne pouvez pas héberger 2 versions de service de structure différente sous un pool d'applications unique. Ce que je veux dire, c'est que si vous avez hébergé 2 WebService (l'un utilise Framework 2.0 et l'autre utilise framework 4.0) sous un pool d'applications unique, tout service fonctionnera. Deuxièmement ne marchera jamais

SOLUTION:

    Créer 2 pool d'applications différentes. App1 (Target Framework 2.0) et App2 (Target Framework 4.0)
    Affectez le pool App1 à ce service développé dans Framework 2.0.
    Affectez le pool App2 à ce service développé dans Framework 4.0. Redémarrez IIS

Cela devrait fonctionner maintenant.

+0

Merci pour la réponse Ashu; Malheureusement, les deux projets pointent vers le cadre 3.5. Cela est confirmé car après avoir recréé l'application dans IIS, les deux services Web s'exécutent sur le même AppPool. –