Я новичок в WCF и настройке сервиса и у меня есть 2 вопроса. Мой первый вопрос, у меня есть сервис, который будет доступен через https на веб-сервере. Однако локально на моем локальном IIS7 он будет доступен через http, так как https недоступен. Как настроить службу, к которой будут обращаться оба?
Мой второй вопрос касается того, как я могу настроить службу, требующую доступа к имени пользователя и паролю. Служба, которая у меня есть, я не хочу, чтобы методы внутри нее были доступны, если только вызывающее приложение не имеет прав на это?
Вот пример соответствующей области моего файла web.config.
<system.serviceModel>
<bindings>
<webHttpBinding>
<!-- standard AJAX binding that supports SSL -->
<binding name="TransportSecurity">
<security mode="Transport" />
</binding>
<!-- standard AJAX binding for HTTP only -->
<binding name="NoSecurity">
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="EndPointBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceDebug httpHelpPageEnabled="false" httpsHelpPageEnabled="false" includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service behaviorConfiguration="ServiceBehavior" name="ServiceName">
<endpoint address=""
behaviorConfiguration="EndPointBehavior"
binding="webHttpBinding"
bindingConfiguration="NoSecurity"
contract="App.Service.ServiceName" />
</service>
</services>
<diagnostics>
<messageLogging logMessagesAtTransportLevel="true" logMessagesAtServiceLevel="false" logMalformedMessages="true" logEntireMessage="false" maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" />
</diagnostics>
</system.serviceModel>
В этом конфиге служба настроена только для http, а к ней не применяются имя пользователя / пароль.