Stworzyłem i przetestowałem usługę WCF, wszystko działa dobrze.Usługa WCF w środowisku https
Kiedy wdrożony do środowiska testowego i próbował otworzyć https://my.site/myapp/EnrollmentService.svc Mam komunikat o błędzie:
nie mógł znaleźć adres bazowy, który mecze schemat http dla punktu końcowego z obowiązującymi MetadataExchangeHttpBinding. Zarejestrowane schematy adresów bazowych to [https].
Internet pokazał mi, że muszę dodać kilka dodatkowych opcji konfiguracyjnych:
http://www.codeproject.com/KB/WCF/7stepsWCF.aspx
Dodałem niektóre ustawienia do obsługi pliku web.config. Teraz wygląda to następująco:
<system.serviceModel>
<services>
<service name="McActivationApp.EnrollmentService" behaviorConfiguration="McActivationApp.EnrollmentServicBehavior">
<endpoint
address="https://my.site/myapp/EnrollmentService.svc"
binding="basicHttpBinding"
bindingConfiguration="TransportSecurity"
contract="McActivationApp.IEnrollmentService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="McActivationApp.IEnrollmentService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="McActivationApp.EnrollmentServicBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Właściwie dodałem sekcję "wiązania" i określiłem ją dla mojego punktu końcowego.
Ale to nic nie zmieniło ...
Proszę doradzić, co muszę zrobić. Wielkie dzięki!
P.S. Czy są jakieś różnice w usługach WCF zużywających zasoby https i http?
Czy poprawnie zrozumiałem, że tutaj: 1) zmieniono wiązanie mex z mexHttpBinding na mexHttpsBinding i 2) zastąpiono httpGetEnabled przez httpsGetEnabled .Tak? Tak, to działa również. Dzięki – Budda
Tak, to co zrobiłem + zmieniono umowę na mex i usunięto pierwszy adres punktu końcowego, ponieważ nie jest używany, gdy usługa jest hostowana w IIS. –
Dziękuję za pomoc! – Budda