Проблема со службой WCF REST при отключении анонимной аутентификации - PullRequest
2 голосов
/ 17 июня 2019

Схемы проверки подлинности, настроенные на хосте («IntegratedWindowsAuthentication»), не допускают схемы, настроенные на привязке «BasicHttpBinding» («Аноним»).Убедитесь, что для SecurityMode установлено значение Transport или TransportCredentialOnly.Кроме того, это может быть решено путем изменения схем аутентификации для этого приложения через инструмент управления IIS, через свойство ServiceHost.Authentication.AuthenticationSchemes, в файле конфигурации приложения в элементе, путем обновления свойства ClientCredentialType в привязке или путем настройкисвойство AuthenticationScheme в HttpTransportBindingElement.

У нас есть служба отдыха WCF, размещенная на IIS 7.5. Мы можем просматривать службу, если включена анонимная аутентификация (в IIS).

Но появляется сообщение об ошибке выше, если анонимная аутентификация на IIS отключена.

мы используем webHttpBinding и с привязкой с определением ниже

<binding name="ExternalServicesRestBinding" closeTimeout="10:01:00" openTimeout="10:01:00" receiveTimeout="10:10:00" sendTimeout="10:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
          </security>
        </binding>

с поведением конечной точки как

 <behavior name="endpointBehaviourForRestService">
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
          <webHttp />
        </behavior>

Любое предложение или подсказки, пожалуйста, какие, по вашему мнению, могут решить проблему?

Заранее спасибо.

Раджкумар.

1 Ответ

0 голосов
/ 18 июня 2019

Я столкнулся с подобной проблемой в моем приложении

У меня проблема с поведением службыConfiguration и именем этой службы. Я правильно, как показано ниже. Это решило мою проблему.

Пример:

<system.serviceModel>
    <services>
      <service behaviorConfiguration="ServiceBehavior" name="service_namespace.service_Class" >

и еще один момент, когда вы внедряете службу REST, нам нужно добавить Factory="System.ServiceModel.Activation.WebServiceHostFactory" в файл .svc. (вы получаете ошибку «Конечная точка не найдена», но служба работает нормально, если вы все равно ее правильно вызываете. Как уже упоминалось ранее, я использую Web.config по умолчанию с .NET 4.6 (упрощенная конфигурация WCF), так что я могу еще необходимо добавить детали конечной точки, чтобы это снова заработало).

Пожалуйста, проверьте ваши настройки и файл svc.

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