ERROR: Mensaje de error "ExternalException: no se puede ejecutar un programa" al llamar a WebServices desde una página .aspx

Seleccione idioma Seleccione idioma
Id. de artículo: 315904 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E315904
Expandir todo | Contraer todo

En esta página

Síntomas

Si usa el Protocolo simple de acceso a objetos (SOAP, Simple Object Access Protocol) para llamar al método WebServices desde una página .aspx, la página .aspx puede dar error al ejecutar la herramienta Bloqueo de seguridad de Servicios de Internet Information Server (IIS) de Microsoft. Además, puede aparecer el mensaje de error siguiente:
[ExternalException (0x5): no se puede ejecutar un programa. El comando que se estaba ejecutando era "d:\winnt\microsoft.net\framework\v1.0.3408\csc.exe" /noconfig @"D:\WINNT\TEMP\eyrpuhyg.cmdline".]
Este problema sólo afecta a las aplicaciones o servicios Web que sean clientes de un servicio Web que suplante a la cuenta de usuario Anónimo.

Causa

La herramienta Bloqueo de seguridad de IIS deniega el acceso de ejecución para las cuentas IUSR_COMPUTERNAME y WAM_COMPUTERNAME a cada archivo ejecutable (*.exe) del directorio de Windows (%windir%). Esto incluye las herramientas de un marco de trabajo como el archivo Csc.exe, que la clase XmlSerializer utiliza. Cuando una aplicación o servicio Web suplantan a IUSR_COMPUTERNAME o IWAM_COMPUTERNAME, no pueden usar XmlSerializer para serializar los objetos de documentos del Lenguaje de marcado extensible (XML, Extensible Markup Language).

Nota: este problema no afecta al lado servidor de un servicio Web porque XmlSerializer se genera y compila fuera de la suplantación.

Solución

Para resolver este problema, utilice uno de los métodos siguientes:
  • Use una cuenta diferente a la anónima para suplantar. (Éste es el método recomendado).
  • Agregue permisos suficientes para los archivos ejecutables en el directorio de Windows.

Estado

Microsoft ha confirmado que se trata de un error de los productos de Microsoft enumerados al principio de este artículo.

Más información

Pasos para reproducir este comportamiento

  1. Permita el acceso Anónimo en la aplicación de IIS.
  2. Habilite la suplantación para la aplicación Web en el archivo local Web.config como se indica a continuación:
    <configuration> <system.web>	
    	<identity impersonate="true" />
      </system.web> </configuration>
    					
  3. Ejecute la herramienta Bloque de seguridad de IIS, o deniegue el acceso a las cuentas IUSR_COMPUTERNAME o IWAM_COMPUTERNAME en el archivo Csc.exe antes de solicitar la página.

Referencias

Para obtener información adicional acerca de la suplantación en una aplicación de ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
306158 INFO: Implementar la representación en una aplicación ASP.NET
Para obtener información adicional acerca de XmlSerializer, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
315703 CÓMO: Serializar un objeto en XML con Visual Basic .NET
Para obtener más información acerca de los servicios Web, visite los siguientes sitios Web de MSDN:
XML Web Services Developer Center
http://msdn.microsoft.com/webservices

XML Web Service-Enabled Office Documents (un artículo de Extreme XML)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml02192001.asp

Además, consulte el tema sobre cómo crear y tener acceso a servicios Web ("Creating and Accessing Web Services Walkthroughs") en la documentación de la Ayuda en línea de Visual Studio .NET para obtener más información acerca de los servicios Web.

Propiedades

Id. de artículo: 315904 - Última revisión: jueves, 22 de febrero de 2007 - Versión: 6.2
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Palabras clave: 
kbbug kbpending kbsecurity kbwebforms KB315904
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com