Почему я получаю 400 неверных запросов при вызове веб-службы .Net 2.0 из WCF через https? - PullRequest
0 голосов
/ 07 октября 2010

У меня есть веб-сервис, который содержит метод, который мне нужно запустить для создания отчета.Метод веб-сервиса написан на .Net 2.0 и отлично работает на моей тестовой системе, которая работает на том же сервере, что и живая система.Единственное отличие состоит в том, что в действующей версии используется https.

Всякий раз, когда я изменяю адрес конечной точки на работающий сервис и запускаю свое приложение, я получаю только 400 ошибок (неверный запрос) от IIS.

Есть ли какой-то конкретный параметр конфигурации, который мне нужно изменить в настройках WCF в app.config, чтобы он работал с https?

Сгенерированные параметры app.config, созданные с помощью «Добавить ссылку на службу», следующие:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="ReportsSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
                receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
                bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="Transport" >
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>

        </basicHttpBinding>
    </bindings>
    <client>

        <endpoint address="https://www.mysite.com/subdir/subdir/Reports.asmx"
            binding="basicHttpBinding" bindingConfiguration="ReportsSoap"
            contract="SystemReports.ReportsSoap" name="ReportsSoap" />
    </client>
</system.serviceModel>

1 Ответ

1 голос
/ 07 октября 2010

Да, вы должны изменить конфигурацию привязки, чтобы использовать безопасность транспорта.

<bindings>
  <basicHttpBinding>
    <binding name="YourCurrentBindingName" ...>
      <security mode="Transport" />
    </binding>
  </basicHttpBinding>
</bindings>
...