Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

BOGUE : Message d'erreur « Exception externe : Impossible d'exécuter un programme » lorsque vous appelez WebServices à partir d'une page .aspx

Ancien nº de publication de cet article : F315904
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Symptômes
Si vous utilisez le Protocole SOAP (Simple Object Access Protocol) pour appeler la méthode WebServices à partir d'une page .aspx, la page .aspx peut échouer lorsque vous exécutez l'outil de verrouillage des services Internet (IIS Lockdown). Par ailleurs, le message d'erreur suivant peut s'afficher :
[Exception externe (0x5) : Impossible d'exécuter un programme. La commande en cours d'exécution était "d:\winnt\microsoft.net\framework\v1.0.3408\csc.exe" /noconfig @"D:\WINNT\TEMP\eyrpuhyg.cmdline".]
Ce problème affecte uniquement les applications Web ou les services Web qui sont clients d'un service Web et qui empruntent l'identité d'un compte d'utilisateur anonyme.
Cause
L'outil IIS Lockdown refuse l'accès d'exécution aux comptes IUSR_NOM_ORDINATEUR et IWAM_NOM_ORDINATEUR pour chaque fichier exécutable (* .exe) dans le répertoire Windows (%windir%). Cela inclut les outils d'infrastructure tels que le fichier Csc.exe, utilisé par la classe XmlSerializer. Lorsqu'une application Web ou un service Web emprunte l'identité IUSR_NOM_ORDINATEUR ou IWAM_NOM_ORDINATEUR, l'application ou le service ne peut pas utiliser XmlSerializer pour sérialiser des objets dans des documents XML (Extensible Markup Language).

Remarque Ce problème n'affecte pas le côté serveur d'un service Web parce que XmlSerializer est généré et compilé hors de l'emprunt d'identité.
Résolution
Pour résoudre ce problème, appliquez l'une des méthodes suivantes :
  • Utilisez un compte différent (non anonyme) pour l'emprunt d'identité. (Il s'agit de la procédure recommandée.)
  • Ajoutez une autorisation suffisante pour les fichiers exécutables dans le répertoire Windows.
Statut
Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés au début de cet article.
Plus d'informations

Procédure pour reproduire le problème

  1. Autorisez l'accès anonyme à l'application IIS.
  2. Activez l'emprunt d'identité pour l'application Web dans le fichier Web.config local comme suit :
    <configuration>  <system.web>		<identity impersonate="true" />  </system.web></configuration>					
  3. Exécutez l'outil IIS Lockdown ou refusez l'accès au compte IUSR_NOM_ORDINATEUR ou IWAM_NOM_ORDINATEUR sur le fichier Csc.exe avant de demander la page.
Références
Pour plus d'informations sur l'emprunt d'identité dans une application ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
306158 INFO : Implémentation de l'emprunt d'identité dans une application ASP.NET
Pour plus d'informations sur XmlSerializer, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
315703 COMMENT FAIRE : Sérialiser un objet en XML en utilisant Visual Basic .NET
Pour plus d'informations sur les services Web, consultez le site Web MSDN aux adresses suivantes :
Centre de développement Services Web / XML
http://www.microsoft.com/france/msdn/technos/webservices.mspx

XML Web Service-Enabled Office Documents (une rubrique Extreme XML) (en anglais)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml03192001.asp

Pour plus d'informations sur les services Web, vous pouvez également vous reporter à la rubrique « Création et accès aux services Web » dans la documentation en ligne de Visual Studio .NET.
csc.exe iis lock down
Propriétés

ID d'article : 315904 - Dernière mise à jour : 04/24/2006 09:33:21 - Révision : 6.2

Microsoft ASP.NET 1.0, Microsoft Web Services (included with the .NET Framework) 1.0 , Microsoft Web Services Enhancements for Microsoft .NET 1.1

  • kbbug kbpending kbsecurity kbwebforms KB315904
Commentaires