Question

J'accède à mon serveur via une connexion de bureau à distance et j'ai configuré un service Web dans IIS. Je suis capable de voir les méthodes mais quand je clique sur le bouton pour & "Invoke &"; J'obtiens l'erreur suivante:

System.Data.SqlClient.SqlException: la connexion a échoué pour l'utilisateur 'SOLDev \ Server02 $'.    sur ShareWare.Web.Service.WebAPI.Reservation.GetInfo ()

Pourquoi prend-il le nom de la machine en tant qu'utilisateur? Mon utilisateur d'authentification Windows est User1Dev. De plus, la sécurité de répertoire dans IIS est configurée comme suit:

  1. Option & "Activer l'accès anonyme &"; - c'est désactivé
  2. Option " Authentification Windows intégrée " - coché

J'utilise .NET Framework 2.0

Était-ce utile?

La solution

Cela est dû au fait que le service Web est exécuté en tant qu'ID de service réseau et non en tant qu'utilisateur connecté. Si vous prévoyez d’utiliser les informations d’identité de l’utilisateur pour vous connecter à SQL Server, vous devez probablement également disposer de <identity impersonate="true" /> dans votre configuration Web.

Autres conseils

Votre service Web se connecte au SQL en utilisant l'authentification Windows en tant que principal exécutant le service. Dans ce cas, il semble que ce soit BUILTIN \ System ou BUILTIN \ Network Service, qui s'authentifient tous deux dans le domaine en tant que compte d'ordinateur, c'est-à-dire. 'SOLDEV \ Server02 $' qui correspond à une machine nommée Server02 du domaine SOLDEV.

Si vous souhaitez vous authentifier sur le serveur SQL avec vos propres identifiants, les services Internet (IIS) doivent acheminer les informations d'authentification dans le cadre d'un processus appelé Délégation contrainte. Voir Configuration Délégation contrainte pour Kerberos (IIS 6.0). ou Comment: utiliser Transition de protocole et délégation contrainte dans ASP.NET 2.0 .

Si vous souhaitez que le service Web s'authentifie auprès de SQL Server en tant que tel, vous devez accorder un droit de connexion au principal du service Web sous SQL: CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top