Restful WCF (webhttpbinding) в IIS прерывается после добавления https-привязки - PullRequest
2 голосов
/ 30 ноября 2009

У меня есть служба WCF, размещенная в IIS (7.0), которая реализует несколько контрактов на обслуживание и поэтому определяет несколько конечных точек (по одной для каждого контракта). Он работал нормально, но я только что добавил привязку https к веб-приложению IIS, и теперь я получаю исключение активации, указывающее, что служба реализует несколько контрактов, но в конфигурации не определены конечные точки, когда они действительно есть. Я нашел эту статью, которая решает аналогичную проблему, вызванную добавлением имен узлов в IIS, но, похоже, не помогает моей ситуации.

Вот фрагмент моей конфигурации, который имеет отношение:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix="http://localhost/CDC.WebPortal.MidTierAccessService/"/>
  </baseAddressPrefixFilters>
</serviceHostingEnvironment>


<services>
  <service name="CDC.WebPortal.MidTier.MidTierAccessService"
           behaviorConfiguration="MidTierServiceBehaviour" >

    <endpoint address="http://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc"
              binding="webHttpBinding" bindingName="RestBindingConfiguration"
              contract="CDC.WebPortal.ServiceContract.IProductService"/>

    <endpoint address="http://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc/Category" binding="webHttpBinding" 
              bindingName="RestBindingConfiguration"
              contract="CDC.WebPortal.ServiceContract.ICategoryService"/>

    <endpoint address="http://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc/Account" binding="webHttpBinding" 
              bindingName="RestBindingConfiguration"
              contract="CDC.WebPortal.ServiceContract.IAccountService"/>

    <endpoint address="http://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc/Order"
              binding="webHttpBinding" bindingName="RestBindingConfiguration"
              contract="CDC.WebPortal.ServiceContract.IOrderService"/>

    <endpoint address="http://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc/mex"
              binding="mexHttpBinding" contract="IMetadataExchange" />

  </service>
</services>

Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Если вы настраиваете HTTPS для привязки (скажем, SecureRestBindingConfiguration), вам также необходимо установить «https» в адресе конечных точек, которые вы хотите выставить как https. например,

<endpoint address="https://localhost/CDC.WebPortal.MidTierAccessService/MidTierAccessService.svc"
                  binding="webHttpBinding" bindingName="SecureRestBindingConfiguration"
                  contract="CDC.WebPortal.ServiceContract.IProductService"/>

Ключевое слово: https, SecureRestBindingConfiguration

UPDATE: Предполагается, что вы сконфигурировали транспорт https в SecureRestBindingConfiguration.

0 голосов
/ 06 сентября 2013

Вы можете ссылаться на эту ссылку. Эта ссылка помогает обеспечить безопасность с помощью SSL. Перед этим вы должны установить сертификат SSL в свой IIS [введите описание ссылки здесь] [1]

[1]: http://taciturndiscourse.com/services/ssl-for-webhttpbinding/

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