Я новичок в 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, а не для имени пользователя/пароля.