502 Плохой шлюз WCF не отвечает - PullRequest
1 голос
/ 27 июня 2010

IIS6

- в моей сети есть сервер с сетевым именем Test_Server. Это связано с прокси ISA.

- у меня есть сервер, доменное имя которого называется Live_Server и имеет IP Live_IP. Это не связано ни с одним прокси. или предположим, что.

- конечно, я открываю все порты брандмауэра

- У меня есть служба WCF REST, я использую HTTPS для подключения к ней, все в порядке: -

  • 127.0.0.1: SomePort
  • test_Server: SomePort

- Когда я подключаю WCF Rest к любому из следующего, используя запрос HTTPS: -

Я получаю 502 Ошибка шлюза и статус исключения: System.Net.WebExceptionStatus.ProtocolError

  • Live_Server: SomePort
  • Live_IP: SomePort

Что такое шансы ??

Ниже приводится web.config WCF

<system.serviceModel>
  <services>
    <service name="Contracts.WCF_REST">
      <endpoint behaviorConfiguration="webHttp" binding="webHttpBinding" bindingConfiguration="SecureWebHttp" contract="Contracts.IWCF_REST" />
    </service>
  </services>

  <bindings>
    <webHttpBinding>
      <binding name="SecureWebHttp" useDefaultWebProxy="false">
        <security mode="Transport">
          <transport clientCredentialType="None" proxyCredentialType="None"/>
        </security>
      </binding>
    </webHttpBinding>
  </bindings>
  <behaviors>
    <endpointBehaviors>
      <behavior name="webHttp">
        <webHttp/>
      </behavior>
    </endpointBehaviors>
  </behaviors>
</system.serviceModel>

Ответы [ 2 ]

2 голосов
/ 28 июня 2010

Конец безумия

Насколько я понимаю, клиент обнаружил прокси и пытался подключиться через него. Я просто попросил .net прекратить использование любого прокси, найденного на клиенте.

но я до сих пор не понимаю, почему он прекрасно работает с HTTP и не работает с HTTPS. HTTPS работает только тогда, когда я перестаю использовать прокси.

У кого-то есть лучшее объяснение?

  WebRequest.DefaultWebProxy = null;
0 голосов
/ 31 мая 2012

Я видел такую ​​проблему при подключении локальных служб WCF к веб-роли, размещенной в Azure, и они в основном вызваны наличием прокси в локальной сети. В любой корпоративной ИТ-среде все сетевые настройки компьютеров настроены на использование прокси-сервера либо с автоматическим определением, либо, если у вас несколько прокси-серверов, вы фактически выбираете, какой из них выбрать. Когда служба WCF подключается к внешнему миру, она проходит через те же настройки прокси, что фактически меняет динамику подключения и вводит поведение.

Так почему с HTTPS, а не с HTTP, это происходит потому, что HTTPS использует TLS для защиты связи, и если у вас есть прокси-сервер в середине, очень вероятно, что связь WCF не может быть установлена.

Установив для UseDefaultWebProxy значение false, вы просите веб-службу не использовать прокси-сервер для конкретного компьютера и использовать пользовательские настройки, которые являются частью конфигурации веб-службы. Таким образом, вы можете навязать свою особую конфигурацию WCF, установить HTTPS-соединение через прокси-сервер.

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