У нас есть служба RESTful WCF, размещенная в IIS 7. Мы хотим, чтобы служба была доступна как для http, так и для https. Итак, мы добавили 2 привязки для службы host-
HTTP : //service.abc.com
* 1006 HTTPS *: //service.abc.com
Все службы, реализующие единый контракт , работают хорошо, но мы получаем System.ServiceModel.ServiceActivationException для любой службы, которая реализует более одного контрактов.
Все отлично работает только с одним типом привязки: http или https .
Есть решение?
настройка сервиса -
<services>
<service behaviorConfiguration="RESTServiceBehavior" name="App.Services.Service1">
<endpoint address="" behaviorConfiguration="webBehavior" binding="webHttpBinding" contract="App.Contract.Services.IService1" bindingConfiguration="RESTServiceBinding"></endpoint>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp/>
<restGlobalErrorHandler/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="RESTServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceAuthorization serviceAuthorizationManagerType="App.Services.AuthorizationManager, App.Services" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>
<bindings>
<webHttpBinding>
<binding name="RESTServiceBinding">
<security mode="Transport">
</security>
</binding>
</webHttpBinding>
</bindings>