REST WCF Сервис хостинг (https) в Сервисе Windows на Win2003 - PullRequest
0 голосов
/ 24 июня 2011

Я сам принимаю службу REST WCF в службе Windows.Служба предоставляет метод, который возвращает логическое значение, и я могу заставить веб-сервис REST работать на WinXp.Я также сгенерировал сертификат разработки, используя makecert , и назначил его порту (1443), который прослушивает служба.Https также хорошо работает на WinXp.Но когда я использую то же самое в Win2003 и набираю URL в IE, он говорит: «Страница не может быть отображена».Не было ошибок при размещении службы, служба прослушивает порт (ServiceHost.Open не обнаружил ошибок и успешно завершен).Есть ли для этого настройки в Win2003?Win2003 - это производственная среда, над которой должен работать https.

Вот файл конфигурации, который я использовал,

 <system.serviceModel>
<bindings>
  <webHttpBinding>
    <binding name="httpBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="spectrumServiceBehavior" name="MyApp.TestService">
    <host>
      <baseAddresses>
        <add baseAddress="https://localhost:1443/" />
      </baseAddresses>
    </host>
    <endpoint address=""
              binding="webHttpBinding"
              bindingConfiguration ="httpBinding"
              contract="MyApp.ITestService" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="spectrumServiceBehavior">
      <!-- To receive exception details in faults for debugging purposes, 
        set the value below to true.  Set to false before deployment 
        to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceMetadata httpsGetEnabled ="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Есть идеи?

Ответы [ 2 ]

1 голос
/ 06 февраля 2013

У меня возникла такая же проблема.Среда разработки WinXP, работающая с HTTPS, сертификат, созданный локально и назначенный пользовательскому порту с помощью httpcfg.Производственная среда в Windows 2003 с импортированным сертификатом и той же конфигурацией httpcfg, которая дает «прерванное соединение» при попытке получить WSDL службы.

Просматривая журнал Windows, я наконец обнаружил эту ошибку:

Источник события: Schannel

Произошла неустранимая ошибка при попытке доступа к закрытому ключу учетных данных сервера SSL.Код ошибки, возвращаемый из криптографического модуля: 0x80090016.

Моя проблема заключалась в том, что я импортировал сертификат в хранилище учетных записей пользователей, а затем скопировал в локальное хранилище.Таким образом, закрытый ключ остается позади ... http://support.microsoft.com/kb/939616 (даже без предупреждения !!!), несмотря на то, что открытие сертификата в новом месте показывает наличие закрытого ключа!

0 голосов
/ 24 июня 2011

Я ожидаю, что в Windows 2003 вы должны разрешить приложению прослушивать порт (если он не работает от имени администратора), и вы должны назначить SSL-сертификат для порта - и то, и другое выполняется httpcfg.exe.Также убедитесь, что нет брандмауэра, блокирующего связь через порт.

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