我知道有很多关于此的帖子,并且我已经浏览了所有在我的搜索中出现的帖子并实施了提到的所有内容。我有一个 WCF Web 服务,可以在我的本地系统上运行 HTTP,它在服务器上运行 HTTP。但是客户端要求它通过 HTTPS 工作。这个网站和其他网站上的大量帖子告诉我,这并不像应有的那么简单,因为在此之前,ASMX Web 服务“正常工作”并且不需要复杂的配置。
我的当前配置出现以下错误:
找不到与具有绑定 WSHttpBinding 的端点的方案 https 匹配的基地址。注册的基地址方案是 [http]。
这是我目前的代码,经过几天的尝试配置它无济于事:
<system.serviceModel>
<!-- -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" >
<baseAddressPrefixFilters>
<add prefix="https://mysite.com"/>
<add prefix="http://mysite.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<!-- Set up Custom Behaviors -->
<behaviors>
<endpointBehaviors>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WebPostService.WebPostServiceBehavior">
<serviceMetadata httpsGetEnabled="true" httpsGetUrl="WebPostServices.svc/mex" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<!-- Set up the binding configuration -->
<bindings>
<wsHttpBinding>
<binding name="SOAPBinding"
>
<security mode="Transport">
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service
behaviorConfiguration="WebPostService.WebPostServiceBehavior"
name="WebPostService.WebPostService"
>
<host>
<baseAddresses>
<add baseAddress="https://mysite.com/Services/WebPostService.svc"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="SOAPBinding"
contract="WebPostService.IWebPostService"
>
<identity>
<dns value="mysite.com" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange"
>
</endpoint>
</service>
</services>
</system.serviceModel>
我做错了什么,我怎样才能让它通过 HTTPS 工作?我很沮丧,这并不像它应该的那么简单。在这个项目上工作的几个月里,我一直沉浸在 MSDN 的 WCF 文档中,并且对服务、端点和绑定有很好的了解——这比我完全不了解更让我感到沮丧。
更新:仍在努力解决这个问题,当我尝试为 mex 地址输入完整 URL 时遇到了一个奇怪的错误。我改成这样:
address="https://prcwebs.com/Services/WebPostService.svc/mex"
并得到错误:
此服务的安全设置需要 Windows 身份验证,但托管此服务的 IIS 应用程序未启用它。
我没有尝试使用 Windows 身份验证,安全设置未更改,仍设置为
<安全模式="传输" />
找不到与具有绑定 WebHttpBinding 的端点的方案 https 匹配的基地址。注册的基地址方案是 [http] -没有帮助, 没有 提到任何有帮助 的内容 尝试更改为不同的安全模式,仍然无法使网站正常工作。