Встроенная проверка подлинности Windows. Многофункциональные заголовки WCF. IIS 6 не работает. - PullRequest
1 голос
/ 11 октября 2010

У меня есть веб-сайт asp.net 2.0 с размещенным внутри него сервисом WCF, работающим на платформе .NET 3.5.Сайт настроен только с встроенной аутентификацией Windows.Веб-сервер IIS 6 с балансировкой нагрузки на Windows 2003 Sp2 (2 сервера).Я не могу получить доступ к службе WCF (.svc), используя полный URL-адрес (http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc).. Также обратите внимание, что сервер настроен с несколькими заголовками узлов. Веб-сайт защищен siteminder .получено сообщение об ошибке

Эта коллекция уже содержит адрес со схемой http. В этой коллекции может быть не более одного адреса. Имя параметра: item

Итакдобавили следующую конфигурационную запись

<serviceHostingEnvironment>
  <baseAddressPrefixFilters>
    <clear/>
    <add prefix="http://myqa2.abcdefg.com"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>

Эта ошибка исчезла, но теперь браузер запрашивает у меня вход в систему. Для этого же веб-сайта я могу получить доступ к странице .aspx. Отображается только приглашение для входадля файла .svc.

Вот привязка / конечная точка из используемого мной файла конфигурации.

<system.serviceModel>
<serviceHostingEnvironment>
  <baseAddressPrefixFilters>
    <clear/>
    <add prefix="http://myqa2.abcdefg.com"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>
<bindings>
  <basicHttpBinding>
    <binding name="IISIntegratedAuthBinding">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="TestWCFFromSL.Web.WCFTrxnServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://myqa2.abcdefg.com/fmc/WCFNotesService.svc"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="TestWCFFromSL.Web.WCFTrxnService" behaviorConfiguration="TestWCFFromSL.Web.WCFTrxnServiceBehavior">
    <endpoint
      address="http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="IISIntegratedAuthBinding"
      contract="TestWCFFromSL.Web.IWCFTrxnService" />
  </service>
</services>
<!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>-->

1 Ответ

0 голосов
/ 21 апреля 2011

, если сайт защищен SiteMinder, вызовы WCF / SOAP не работают. Но другое решение этой проблемы работает.

URL-адрес myqa2.abcdefg.com/trxn/WCFTrxnService.svc защищен SiteMinder, но myqa2 / trxn / WCFTrxnService.svc не защищен siteminder, похоже, SiteMinder защищает только FQDN (полностью определенные доменные имена) Поэтому я настроил приложение для вызова службы WCF, используя короткий URL вместо полного доменного имени. Мне также пришлось использовать crossdomainpolicy, потому что приложение рассматривает myqa2.abcdefg.com и myqa2 как 2 отдельных домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...