Я видел множество вопросов по этому поводу, я провел целый день, исследуя и пытаясь это исправить, но я нарисовал пробел.
Я хочу развернуть службу WCF на сервере, подключающемсяс HTTPS и с использованием базовой аутентификации.Вот мой сервис web.config
Я использую чрезвычайно простой калькулятор в качестве теста, который имеет один метод, который складывает два числа.
<configuration>
<system.web>
<compilation debug="false" targetFramework="4.0" />
<customErrors mode="Off" />
</system.web>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="UsernameWithTransport">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="Service">
<endpoint address="https://myserver.mydomain.co.uk/CalculatorService"
binding="wsHttpBinding"
bindingConfiguration="UsernameWithTransport"
name="BasicEndpoint"
contract="TestCalculator" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
В IIS 6.0 я включил базовыйаутентификация и требуемый HTTPS.
Я могу перейти к файлу .svc, и он запрашивает мои учетные данные.Я предоставляю их, и он отображает страницу по умолчанию.Однако в нем говорится:
Вы создали службу.
Чтобы протестировать эту службу, вам потребуется создать клиента и использовать его для вызова службы.Вы можете сделать это, используя инструмент svcutil.exe из командной строки со следующим синтаксисом:
svcutil.exe http://myserver.mydomain.co.uk/CalculatorService/Service.svc?wsdl
Это создаст файл конфигурации и файл кода, который содержитклиентский класс.Добавьте эти два файла в ваше клиентское приложение и используйте сгенерированный клиентский класс для вызова Сервиса.Например: ......
По сути, проблема в том, что путь к .wsdl - это http: // не https: // и я не думаю, чтоЯ понимаю, почему.
Сейчас я пытаюсь создать консольное приложение C # для тестирования использования сервиса.Я не могу добавить ссылку на путь .svc напрямую, потому что он просто повторяется в цикле, запрашивая у меня имя пользователя и пароль.Если я добавлю ссылку на .svc? Wsdl, то это сработало, но затем вызов службы даст «Метод не разрешен», потому что он пытается использовать HTTP, а не HTTPS.
Надеюсь, я достаточно хорошо это объяснил,Спасибо за любую помощь.