Asp.net не проходит аутентификацию в службе wcf на сервере 2008

StackOverflow https://stackoverflow.com/questions/493679

Вопрос

Мне сложно развернуть веб-сайт в IIS 7 на Windows Server 2008.Сайт работает нормально, пока не попытается выполнить вызов службы WCF, размещенной на том же хосте.

Все отлично подходит для службы с моей рабочей станции, когда веб -сайт запускается в Visual Studio 20008 с использованием той же веб -конфигурации и т. Д.Как только я развертываю Интернет в виртуальном каталоге на сервере BAM.Ошибки аутентификации.Он также работает как есть, когда оба развернуты на Windows 2003 Server.Что отличается от Server 2008, который вызывает это?ПОМОЩЬ!Пожалуйста.

В случае, если важно, все операции обслуживания требуют членства в группе Active Directory для аутентифицированного пользователя страницы ASP.NET и украшены:[PrincipalPermission(SecurityAction.Demand, Role = "SOAMemberShipService")]

Я получаю следующую ошибку с веб-сайта:

Запрос токена безопасности не может быть удовлетворен из-за сбоя аутентификации.Описание:Во время выполнения текущего веб-запроса произошло необработанное исключение.Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и ее источнике в коде.

Подробности исключения:System.ServiceModel.FaultException:Запрос токена безопасности не может быть удовлетворен из-за сбоя аутентификации.

Ошибка источника:

Строка 919:
Строка 920:public hsmembersservice.membersearchresult searchmembers (hsmembersservice.membersearch memberinfotosearch) {строка 921:return base.Channel.SearchMembers(MemberInfoToSearch);Строка 922:} Строка 923:}

Исходный файл:c:\Windows\Microsoft.NET\Framework64\v2.0.50727 emporary ASP.NET Files\csrweb\a4d18657\a6d0910d\App_WebReferences.jgx1svpr.0.cs Строка:921

Трассировки стека:

[Исключение ошибки:The request for security token could not be satisfied because authentication failed.] System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target) +6375432 System.ServiceModel.Security.IssuanceTokenProviderBase`1.ThrowIfFault(Message message, EndpointAddress target) +25 System.serviceModel.security.sspinegotiationtokenprovider.getNextOuteMessageBody (Message outmentMessage, sspinegotiationTokenPiderState sspistate) +173

[SecurityNegotiationException:Абонент не был аутентифицирован Сервисом.] System.Runtime.Remoting.Proxies.RealProxy.HandlerErturnMessage (imessage reqmsg, imessage retmsg) +4596611 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (Massagedata & msgdata, int32). Hsmembersservice.ihsmembersservice.searchmembers (memportearch memberinfotosearch) +0 hsmembersservice.hsmembersserviceclient.searchmembers (memberearch emeckerinfotosearch) в c: windows microsoft.net framework64 v2.0.50727 teamraphary asp.net asrwebe a4.neplebe a4.netbe vweewbe vweewbe vweewb 910d app_webreferences. jgx1svpr.0.cs: 921 _default.btnsearch_click (отправитель объекта, Eventargs e) в e: csrweb default.aspx.cs: 114 System.web.ui.webcontrols.button.onclick (eventargs e) +131 System.webweb.web. .Ui.webcontrols.button.raisepostbackevent (String EventArgument) +140 System.Web.ui.page.raisepostbackevent (ipostbackeventhandler sourcecontrol, String EventArgument) +39 System.Web.UI.PAGE.ProcessRequestMaineMainS. Точка) +3215

Web.config веб-сайта ASP.net (соответствующая часть службы):

Службы web.config:

    <!-- Service Endpoints -->
    <!-- Unless fully qualified, address is relative to base address supplied above -->
    <endpoint address ="" binding="wsHttpBinding" contract="HSMembersService.IHSMembersService" bindingConfiguration="wsHttpBindingConfig">
      <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
      <!--<identity>
        <dns value="localhost"/>
      </identity>-->
    </endpoint>
    <!-- Metadata Endpoints -->
    <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
    <!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<bindings>
  <wsHttpBinding>
    <binding name="wsHttpBindingConfig" >
      <security mode="Message">
        <message clientCredentialType="Windows" />
      </security>

    </binding>
  </wsHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="HSMembersService.HSMembersServiceBehavior">
      <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="True"/>

      <serviceAuthorization principalPermissionMode="UseWindowsGroups"         />
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true.  Set to false before deployment 
      to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="True" /><!-- Change this before deployment -->
    </behavior>
  </serviceBehaviors>
</behaviors>

Это было полезно?

Решение

Хорошо, ответов нет ни здесь, ни в группах подписки MSDN.

Итак, я попробовал все.И я имею в виду все.Казалось, прошло несколько дней, а на самом деле прошло всего 20 часов, и это работает!

Все, что я сделал, это переместил физический путь к файлам служб, т.е..dll, .svc и т. д.в каталог вне моего c:root, а не в wwwroot, и это сработало.Конечно, мне пришлось обновить свой виртуальный каталог, чтобы он указывал на него.

Почему это место вызвало проблему?Изменяет ли IIS7.0/Windows server 2008 что-то, что не позволяет развертывать службы из физического местоположения wwwroot?Вероятно, я никогда этого не узнаю, потому что никогда не попытаюсь развернуть оттуда другой сервис.

Я трижды проверил все разрешения учетной записи/каталога, и те, что в новом физическом пути, идентичны разрешениям в старом физическом пути, так что ничего хорошего в этом нет.

Если кто узнает почему или знает почему.Пожалуйста, дайте мне/нам знать.

Спасибо,

Эдди

Другие советы

Это может быть связано с этот.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top