De fondo: estoy participando en un Servidor Interno de 500 24 50 de error después de la implementación de una aplicación que ha compilado sin errores en mi máquina local. El servidor en el que se implementa la aplicación tiene un montón de seguridad y se está ejecutando IIS 7.5, así que hay que especificar acceso de lectura y escritura para cada directorio. Esta aplicación utiliza la autenticación de windows y un servicio web para llenar los cuadros desplegables que a través de un proxy. Creo que puede ser un problema de conexión con el servicio web o un problema con la seguridad de lectura/escritura sobre los archivos, o un problema con la autenticación de active directory.

Por alguna razón, Internet Explorer muestra no se puede cargar la página de Error.

Error en Google Chrome:

 500  Internal Server Error.
 There is a problem with the resource you are looking for, and it cannot be displayed. 

De Registro De Detalles De Archivo:

 #Software: Microsoft Internet Information Services 7.5
 #Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken

 2011-05-18 13:54:46 W3SVC1 FL-TPA-WEB-01 172.17.1.25 GET / - 80 - 
 172.17.1.25 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;
 +Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET4.0C;+.NET4.0E) - -
 invitations.myagencyservices.com 500 24 50 1380 368 15

MSDN Define el error en http://support.microsoft.com/kb/943891 como:

  500.24 - An ASP.NET impersonation configuration does not apply in Managed 
           Pipeline mode.

Web.Config código:

  <system.web>
<customErrors mode="Off" ></customErrors>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
<trace enabled="true" pageOutput="true" />
<authentication mode="Windows"/> 
<identity impersonate="true"/>  
<authorization>          
<allow users="alg\bmccarthy, alg\phoward" />               
<allow roles="alg\ACOMP_USER_ADMIN" />
<allow roles="alg\ACOMP_user_AMG" />
<allow roles="alg\ACOMP_user_BIG" />
<allow roles="alg\ACOMP_user_NIS" />
<allow roles="alg\ACOMP_user_GLA" />
<allow roles="alg\ACOMP_user_PIP" />
<allow roles="alg\ACOMP_user_PSM" />
<allow roles="alg\ACOMP_user_PAM" />
<allow roles="alg\ACOMP_user_ANN" />
<allow roles="alg\ACOMP_user_AAM" />
<allow roles="alg\ACOMP_user_MWM" /> 
<allow roles="alg\ACOMP_user_GIM" />
<deny users="*" />      
</authorization> 
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IAcompService1" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://63.236.108.91/aCompService.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IAcompService1" contract="aComp_ServiceReference.IAcompService"
name="BasicHttpBinding_IAcompService1" />
</client>
</system.serviceModel>

Cualquier sugerencia será votado!
Gracias por mirar!

OriginalEl autor Brian McCarthy | 2011-05-11

3 Comentarios

  1. 13

    La 500.24.50 Error se produce porque ASP.NET el modo Integrado de es no se puede suplantar la identidad de solicitud en el BeginRequest y AuthenticateRequest canalización de las etapas. 500.24 se produce si la aplicación se está ejecutando en el modo integrado, validateIntegratedModeConfiguration no es declarado o establecido a true, y su aplicación ha suplantar la identidad se establece a true.

    Solución

    A. Si su aplicación no se basa en la suplantación del usuario solicitante en el BeginRequest y AuthenticateRequest etapas (la única etapas, donde la suplantación no es posible en el modo Integrado), ignorar este error mediante la adición de los siguientes para su aplicación web.config:

      <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>

    B. Si su aplicación no dependen de la suplantación en BeginRequest y AuthenticateRequest, o no está seguro, mover al modo Clásico.

    C. eliminar de la web.config que no será eficaz en el modo integrado de todos modos

    Leer más sobre Cambios recientes en IIS 7 de LEARN.IIS.NET

    OriginalEl autor Brian McCarthy

  2. 2

    ACTUALIZACIÓN:

    Hizo un poco más de la excavación y en realidad tienes el servicio mal configurado. Este Artículo de MSDN explica cómo configurar basicHttpBinding para la autenticación de Windows. Básicamente, el basicHttpBinding elemento debe tener este aspecto:

      <basicHttpBinding>
    <binding name="BasicHttpEndpointBinding">
    <security mode="TransportCredentialOnly">
    <transport clientCredentialType="Windows" />
    </security>
    </binding>
    </basicHttpBinding>

    Original respuesta:

    A continuación es algo a tratar a partir de la información en el presente artículo. debido a que el servicio utiliza la representación de la autorización a que parece que tendremos que usar el ASP.NET el modo clásico de configuración de canalización de la AppPool para este servicio. Puede que desee investigar cómo la suplantación de identidad se apoyó en el nuevo modo Integrado de tubería y ver por qué el servicio es no cumplir con ella desde el modo Integrado es preferida.

    Usted recibirá un 500 Interno
    De Error Del Servidor. Este es el Error HTTP
    500.24: ASP.NET se ha detectado que no se aplica en
    Integrados el modo de canalización administrado.
    Esto ocurre porque ASP.NET Integrado
    modo no se puede suplantar la
    identidad de solicitud en el BeginRequest
    y AuthenticateRequest tubería
    las etapas. Solución

    B. Si su
    la aplicación no dependen de la suplantación de la
    en BeginRequest y
    AuthenticateRequest, o no
    seguro, mover al modo Clásico.

    sáez, gracias por tu respuesta! Cómo es esto diferente de lo que tengo? Tengo el nombre de enlace declarado, en virtud del <basicHttpBinding> al igual que usted, pero el nombre de la unión es diferente y estoy declarando un servicio web. Mirando el código completo, necesito <servicios>, <identidad>, y declarar el extremo de dirección dos veces?
    Yo veo las siguientes: <modo de seguridad=»TransportCredentialOnly»> <transporte clientCredentialType=»Windows» />. Antes, yo había <modo de seguridad=»None»> <transporte clientCredentialType=»None» proxyCredentialType=»None» realm=»» />
    Usted tiene el elemento de seguridad mode=»None» y elemento de transporte clientCredentialType=»None» en la basicHttpBinding elemento. Se debe establecer con elemento de seguridad mode=»TransportCredentialOnly» y el elemento de transporte clientCredentialType=»Windows».
    Saez, ¿por qué una ventana pop-up para la autenticación? debe ser automática y no requieren que me escriba en mi ANUNCIO de información como soy ya ha iniciado sesión en windows. ¿Cómo puedo evitar esto?
    No estoy seguro de cómo se genera el cliente o cómo va a invocar el servicio. Usted debe asegurarse de que se vuelva a generar el cliente después de realizar los cambios de configuración de servicio.

    OriginalEl autor Sixto Saez

  3. 1

    Importante: asegúrese de que ha instalado ASP.NET en el equipo; si no o en caso de duda, ejecute el siguiente comando:

    > c:\Windows\Microsoft.NET\Framework\vX.X.XXXXX\aspnet_regiis.exe /i

    OriginalEl autor George

Dejar respuesta

Please enter your comment!
Please enter your name here