2009-11-30 3 views
2

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

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

<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> 

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

ответ

1

Если вы настраиваете 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.

+1

Я на самом деле не используя протокол HTTPS для службы, я добавил привязка https к веб-приложению iis для другого сайта, который он запускает. Я понимаю, что могу просто создать другое веб-приложение без привязки https для использования в службе, однако я хочу знать, почему эта проблема возникла в любом случае, и если она может быть исправлена. –

-1

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

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

Смежные вопросы