Squeak.ru - шаблоны программирования

BasicHttpBinding не работает при совместном использовании конечной точки с WsHttpBinding - сертификат сервера не предоставляется

У меня есть конечная точка службы WCF, которая использует WsHttpBinding и BasicHttpBinding с разными адресами, чтобы они могли совместно использовать конечную точку. На BasicHttpBinding нет безопасности. BasicHttpBinding отлично работает, когда моя служба и клиент находятся на одном компьютере. Когда они находятся на разных машинах, BasicHttpBinding не работает, и я получаю эту ошибку в журнале трассировки службы: Сертификат службы не предоставляется. Укажите сертификат службы в ServiceCredentials.

Ошибка перестанет происходить, если я удалю WsHttpBinding из конфигурации службы.

Web.config службы:

<bindings>
    <basicHttpBinding>
        <binding name="MyBasicBinding"
                  maxBufferPoolSize="5242880"
                  maxReceivedMessageSize="5242880" />
    </basicHttpBinding>
    <wsHttpBinding>
        <binding name="MyWsBinding"
                  bypassProxyOnLocal="false"
                  hostNameComparisonMode="StrongWildcard"
                  maxBufferPoolSize="5242880"
                  maxReceivedMessageSize="5242880"
                  allowCookies="false">
            <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            <security mode="Message">
                <message clientCredentialType="None" /> 
            </security>
        </binding>
    </wsHttpBinding>
</bindings>

<services>
    <service name="MyService">
        <endpoint address="basic" binding="basicHttpBinding" bindingConfiguration="MyBasicBinding"
           contract="MyFramework.IMyService" bindingNamespace="http://MyFramework/Services/"/>

        <!-- The basic binding fails when the WS binding is present.
             If I remove the WS binding, the basic binding will work. -->
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="MyWsBinding"
           contract="MyFramework.IMyService" bindingNamespace="http://MyFramework/Services/"/>
    </service>
</services>

К вашему сведению, я использую другой адрес для базовой привязки, что позволяет двум привязкам использовать одну и ту же конечную точку. URL-адрес для WsHttpBinding - http://server/MyService.svc, а для BasicHttpBinding - http://server/MyService.svc/basic.

Почему наличие WsHttpBinding заставляет BasicHttpBinding ожидать сертификат?


Ответы:


1

Когда служба запускается, необходимо убедиться, что все конечные точки действительны. Поскольку одна из конечных точек (WSHttp) использует проверку подлинности сертификата, сервер не будет работать, если этот сертификат не определен. Так что ошибка не связана с файлом BasicHttp. Это все еще не объясняет, почему все работает, если на одном компьютере, проверьте, используется ли точно такая же конфигурация.

20.06.2013
  • Спасибо, Ярон! Мое решение состояло в том, чтобы создать 2 файла SVC для базового и WS. 21.06.2013
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...