Как включить проверку подлинности Windows и веб-службу NetTCPBinding WCF на IIS7?

Я пытаюсь настроить веб-службу, которая использует проверку подлинности Windows и привязку NetTCPBinding в IIS 7. В настоящее время я получаю эту ошибку, когда пытаюсь получить доступ к wysdl.

«Параметры безопасности для этой службы требуют« анонимной »аутентификации, но она не включена для приложения IIS, в котором размещена эта служба».

Соответствующие разделы моего файла конфигурации выглядят так ...

<behaviors>
    ...
    <serviceBehaviors>
        <behavior name="WCFHostService.MyServiceBehavior">
            <serviceMetadata httpGetEnabled="false" />
            <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
    </serviceBehaviors>
</behaviors>
<services>
    <service name="UPMC.ISD.EADIS.ACO.ACOServiceConcept">
        <endpoint name ="TCP_Binding"
                address=""
                binding="netTcpBinding"
                contract="UPMC.ISD.EADIS.ACO.ACOServiceConcept.IACOService"/>
        <endpoint name="mexHttpbinding"
                contract="IMetadataExchange"
                binding="mexTcpBinding"
                address="mex" />
    </service>
</services>

Как мне настроить «параметры безопасности» для моей службы, чтобы я мог получить к ней доступ? Я также только что прочитал, что вы можете избавиться от ошибки, избавившись от конечных точек привязки mex или включив анонимную аутентификацию. Но как получить wsdl, если у вас нет привязки mex? Что ж, я думаю, что попробую, но если у вас есть другой совет, я обязательно воспользуюсь им.

Спасибо.


person SoftwareSavant    schedule 18.07.2011    source источник


Ответы (2)


Согласно WCF NetTcpBinding Security - как это работает?, значение по умолчанию Параметр безопасности для NetTCP - это проверка подлинности Windows. Похоже, проблема может быть в одной или двух вещах:

  1. Убедитесь, что проверка подлинности Windows включена (в консоли управления IIS в разделе «Проверка подлинности» - там же, где вы найдете переключатель для анонимной проверки подлинности, как в ответе @Joel C).

  2. Вы можете попробовать указать учетные данные учетной записи Windows при создании прокси-сервера клиента, если учетная запись, на которой запущен клиент, не может пройти проверку подлинности.

Находятся ли клиент и сервер в одном домене?

person Tim    schedule 18.07.2011

Вы проверили, включена ли анонимная аутентификация в приложении IIS, в котором вы размещаете свою службу? В консоли управления IIS перейдите к сайту и приложению, где размещается ваша служба. Затем убедитесь, что у вас выбран «Просмотр функций», и выберите вариант «Аутентификация». Вы должны увидеть различные формы аутентификации (анонимная, Windows, ASP.NET Impersonation и т. Д.), И рядом с каждым из них должно быть указано «включено» или «отключено».

person Joel C    schedule 18.07.2011
comment
Однако я не хочу, чтобы была включена анонимная аутентификация. У моего коллеги аналогичная настройка с отключенной анонимной аутентификацией ... - person SoftwareSavant; 18.07.2011