Могу ли я иметь приложение WCF, которое имеет две конечные точки. Один с Windows Security, а другой без?

Я прочитал несколько постов (здесь, в SO и MSDN), которые предположительно показывают, как у меня может быть две конечные точки для моей службы WCF. Но я не могу заставить это работать. Я попробовал то, что они показывают, но это все еще не работает.

Вот что у меня сейчас:

<system.serviceModel>
  <services>
    <service name="MyServiceProject.MyServiceClass">
      <endpoint address="MyService.svc"
                  binding="basicHttpBinding"
                  bindingName="normalBasicHttpBinding"
                  contract="MyContractsProject.IMyServiceClass" />

        <endpoint address="SecuredMyService.svc"
                  binding="basicHttpBinding"
                  bindingName="secureBasicHttpBinding"
                  contract="MyContractsProject.IMyServiceClass" />
    </service>
  </services>
  <bindings>
      <basicHttpBinding>
          <binding name="normalBasicHttpBinding" maxBufferSize="5242880"
                    maxBufferPoolSize="5242880"
                    maxReceivedMessageSize="5242880">
              <readerQuotas maxArrayLength="16384"
                            maxStringContentLength="5242880" />
          </binding>

        <binding name="secureBasicHttpBinding" maxBufferSize="5242880"
                    maxBufferPoolSize="5242880"
                    maxReceivedMessageSize="5242880">
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
          <readerQuotas maxArrayLength="16384"
                        maxStringContentLength="5242880" />
        </binding>
      </basicHttpBinding>
  </bindings>
  <behaviors>
      <serviceBehaviors>
          <behavior>
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="true" />
          </behavior>
      </serviceBehaviors>
  </behaviors>
</system.serviceModel>

Вариации на это, что я попробовал:

  • Снятие безопасности
  • Если первый адрес будет пустым, а второй просто "безопасным", то http://MyNormalEndpoint/MyService.svc/secure (было пусто, и WCF Storm не смог подключиться)
  • Добавление < Host> раздел, который является жесткой ссылкой на путь развертывания. (Я не хочу этого делать, так как мой сервис должен быть развернут в нескольких разных местах. Но он все равно не работал)
  • Наличие только одной конечной точки (безопасной)
  • Использование двух разных типов привязки (wsHttpBinding).

Ничего из этого не сработало.

И теперь звонки на мой обычный сервис возвращаются 404. (Так что я что-то напутал). Если вы хотите увидеть мой оригинальный (рабочий) конфиг, его можно найти здесь.

Спасибо за любую помощь.

1 ответ

Вы уверены, что у вас есть правильные форматы для адреса

Указание адреса конечной точки

Другие вопросы по тегам