2010-08-12 43 views
0

Lorsque je serai l'hôte du projet "WCF 4 Rest modèle de service" (à partir du modèle) dans IIS Developer Express Je reçois le texte suivant:WCF 4 Rest service sur IIS Developer Express, l'authentification Problème

IIS systèmes d'authentification spécifiés 'IntegratedWindowsAuthentication, Anonymous', mais la liaison prend uniquement en charge la spécification d'un seul schéma d'authentification. Les schémas d'authentification valides sont Digest, Negotiate, NTLM, Basic ou Anonymous. Modifiez les paramètres IIS afin que seul un schéma d'authentification unique soit utilisé.

Je n'ai pas changé toute configuration explicitement autre que la mise en automaticFormatSelectionEnabled false pour retourner JSON:

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
    <standardEndpoints> 
     <webHttpEndpoint> 
      <!--Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
      via the attributes on the <standardEndpoint> element below--> 
     <standardEndpoint name="" 
          helpEnabled="true" 
          automaticFormatSelectionEnabled="false" 
          /> 
     </webHttpEndpoint> 
    </standardEndpoints> 
    </system.serviceModel> 

Si la configuration du point final ne pas être défini est explicitement la question alors comment pourrais-je faire pour ce type de service, afin de définir explicitement le schéma d'authentification du service pour éviter ce problème avec iis developer express?

Note: Je les assemblées suivantes Microsoft.Web.dll & Microsoft.Web.Administration.dll dans les projets de service Web /bin dossier de l'application comme décrit dans hopsting solution de contournement pour les services WCF ici sur le blog de l'équipe iss: http://blogs.iis.net/vaidyg/archive/2010/07/21/wcf-workaround-for-webmatrix-beta.aspx

Répondre

2

Vous devrez désactiver le schéma d'authentification qui n'est pas nécessaire, à mon avis Windows authnetication. Alors:

  1. lancement Bloc-notes
  2. Ouvrir dans le fichier Bloc-notes:% userprofile% \ Documents \ IISExpress8 \ config \ applicationhost.config
  3. Rechercher < windowsAuthentication
  4. Modifier l'attribut activé de true à false
  5. Enregistrer

qui permet de désactiver l'authentification Windows pour tous les sites s, vous pouvez encore ajouter un chemin d'accès au bas du fichier juste avant la dernière </configuration> ligne pour le site spécifique (VotreSite dans ce cas) ajouter:

<location path="YourSite" overrideMode="Allow"> 
    <system.webServer> 
     <security> 
      <windowsAuthentication enabled="false" /> 
     </security> 
    </system.webServer> 
</location> 

Cela ne désactive que pour la site spécifique.