2009-05-12 8 views
11

J'espère que l'un d'entre vous sait comment résoudre ce problème.Aide: Comment activer l'authentification Windows sur ASP.NET Development Server?

Nous essayons d'héberger un service WCF via le web. Nous configurons le web.config pour que le service requière l'authentification Windows. Le problème que nous avons est le suivant:

Lorsque nous hébergeons notre service dans un IIS normal, le service fonctionne bien et il n'y a pas de problèmes avec le mode "Authentification Windows". Toutefois, lorsque nous essayons de l'exécuter à partir de nos boîtes de développeur, nous obtenons l'erreur suivante: "Les paramètres de sécurité pour ce service requièrent l'authentification Windows, mais il n'est pas activé pour l'application IIS qui héberge ce service."

Nos boîtes de développeurs n'hébergent pas le service via l'IIS standard, mais plutôt via le serveur de développement APS.NET de Visual Studio. Nous avons essayé d'aller dans les propriétés du projet web et nous avons dit d'activer l'authentification NTLM mais cela ne l'a toujours pas corrigé. Est-ce que quelqu'un sait comment le réparer? Est-ce que VS ASP.NET Development Server prend même en charge l'authentification Windows? La seule option pour héberger le service avec l'authentification Windows est d'utiliser IIS et d'oublier ASP.NET Development Server?

Merci Chuck

+0

Je finis inévitablement par utiliser IIS sur la boîte de dev. Les répertoires virtuels sont une raison. Une raison plus générale est de s'assurer que l'environnement dev émule le serveur de production aussi étroitement que possible. Cela nécessite un peu plus de travail d'installation pour les développeurs. –

Répondre

4

ASP.Net Development Server est très limité. Il ne traite que les demandes provenant de la même machine sur laquelle il s'exécute et ne servira pas les fichiers qui sont en dehors de sa portée d'application. Il est basé sur le serveur Cassini. Cassini ne prend pas en charge les services Web WCF. La documentation pour ASP.Net Development Server indique qu'il prend en charge NTLM. Si vous naviguez simplement jusqu'à une page de la machine locale, cela devrait fonctionner correctement, sauf si la page fait référence à une ressource indisponible.

consultez http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx pour plus d'informations.

2

Je voudrais installer et configurer IIS sur votre machine de développement locale et l'utiliser de préférence à l'aide du serveur Web intégré. Pour utiliser IIS local pour déboguer sélectionnez "Serveur Web IIS local utilisateur" dans l'onglet Web des propriétés du projet. Utiliser IIS plutôt que le serveur Web intégré signifie également que vous pouvez configurer votre application exactement comme elle sera configurée sur le serveur de production, ce qui réduira le nombre de surprises potentielles lorsque vous vous déplacerez dans l'environnement de production.

11

Pour configurer les paramètres de sécurité IIS Express:

  1. regard pour IIS express symbole dans la barre des tâches (barre d'état système).
  2. Cliquez à droite et sélectionnez "Toutes les applications".
  3. Cliquez sur le nom du site que vous voulez changer (bien que je crois que le changement est l'ensemble du site)
  4. Cliquez sur le chemin dans la section de configuration ci-dessous (il ouvrira l'applicationhost.fichier de configuration)
  5. de recherche pour la section d'authentification et apportez vos modifications

changements Exemple se trouve ici:

http://toadcode.blogspot.ca/2011/08/security-config-in-iis-express.html

+1

Merci Brett! Parmi toutes les solutions que j'ai essayées, cela a été fait pour moi. Assurez-vous de NE PAS mettre ce qui suit dans votre configuration si vous essayez la solution ci-dessus: . –

+0

Super merci! J'ai mis à jour vers VS 2015 et j'avais ce problème mais votre solution l'a corrigé pour moi! – DontFretBrett

Questions connexes