ASP.NET - ошибка развертывания IIS7 500 24 50 с использованием привязки веб-службы WCF с группами AD - PullRequest
4 голосов
/ 11 мая 2011

Предыстория: я получаю Внутренний сервер 500 24 50 ошибка после развертывания приложения, которое скомпилировано без ошибок на моем локальном компьютере. Сервер, на котором развернуто приложение, обладает огромным уровнем безопасности и работает под управлением IIS 7.5, поэтому мне нужно указать права на чтение и запись для каждого каталога. Это приложение использует проверку подлинности Windows и веб-сервис для заполнения раскрывающихся списков через прокси. Я думаю, что это может быть проблема с подключением к веб-службе или проблема с безопасностью чтения / записи в файлах, или проблема с аутентификацией в активном каталоге.

По какой-то причине только что отображенный Internet Explorer не может загрузить веб-страницу Ошибка.

Ошибка в Google Chrome:

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

Сведения о файле журнала:

 #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 Определяет ошибку в http://support.microsoft.com/kb/943891 как:

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

Код Web.Config:

  <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>

Любые предложения будут одобрены! Спасибо за внимание!

Ответы [ 3 ]

13 голосов
/ 19 мая 2011

Ошибка 500.24.50 возникает из-за того, что интегрированный режим ASP.NET не может олицетворять идентификацию запроса на этапах конвейера BeginRequest и AuthenticateRequest.500.24 генерируется, если ваше приложение работает в интегрированном режиме, validateIntegratedModeConfiguration не объявлен или не установлен в значение true, а для вашего приложения для олицетворения идентичности установлено значение true.

Обходной путь

A.Если ваше приложение не полагается на олицетворение запрашивающего пользователя на этапах BeginRequest и AuthenticateRequest (единственные этапы, когда олицетворение невозможно в интегрированном режиме), игнорируйте эту ошибку, добавив в файл web.config вашего приложения следующее:

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

B.Если ваше приложение использует олицетворение в BeginRequest и AuthenticateRequest или вы не уверены, перейдите в классический режим.

C.удалить из web.config, который в любом случае не будет работать в интегрированном режиме

Подробнее о Прерывание изменений в IIS 7 из LEARN.IIS.NET

2 голосов
/ 19 мая 2011

ОБНОВЛЕНИЕ:

Сделано еще немного копания, и вы фактически неправильно настроили службу.Эта статья MSDN объясняет , как настроить basicHttpBinding для аутентификации Windows.По сути, элемент basicHttpBinding должен выглядеть следующим образом:

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

Оригинальный ответ:

Ниже приведено несколько примеров из информации в этой статье. Поскольку ваш сервисиспользует авторизацию для авторизации. Похоже, что вам нужно использовать конвейерную конфигурацию классического режима ASP.NET AppPool для этой службы.Возможно, вы захотите изучить, как олицетворение поддерживается в новом конвейере интегрированного режима, и выяснить, почему ваша служба не выполняет его, поскольку предпочтителен интегрированный режим.

Вы получите 500 - Внутренняя ошибка сервера,Это ошибка HTTP 500.24: обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера.Это происходит из-за того, что интегрированный режим ASP.NET не может олицетворять идентификацию запроса на этапах конвейера BeginRequest и AuthenticateRequest.Обходной путь

B.Если ваше приложение использует олицетворение в BeginRequest и AuthenticateRequest или вы не уверены, перейдите в классический режим.

1 голос
/ 09 сентября 2012

Важно: убедитесь, что на вашем компьютере установлен ASP.NET; если нет или если сомневаетесь, выполните следующую команду:

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