Я реализую службу WCF, которая должна работать с объектами Json. Это работает до сих пор. Теперь я хочу, чтобы служба принимала только https, поэтому нет http.Служба Wcf, реализующая только Json и https
Для обоих требований я нашел пару образцов, которые я тестировал и которые, похоже, работают. Однако я не могу получить оба требования, интегрированные в один файл конфигурации.
Это моя конфигурация для службы:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2"/>
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="serviceBehavior" name="SMApi.SApi">
<endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
bindingConfiguration="" contract="SMApi.ISApi" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<!--/-->
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<!--/-->
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
</behavior>
</serviceBehaviors>
<!--/-->
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
<!--/-->
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="false"/>
</system.webServer>
</configuration>
Попробуйте установить режим безопасности для транспортировки на 'webHttpBinding'. Для этого вам нужно добавить раздел конфигурации привязки в вашу конфигурацию. – Tim