客户端中的 WCF 服务通过 https 返回 404
Posted
技术标签:
【中文标题】客户端中的 WCF 服务通过 https 返回 404【英文标题】:WCF service in client returns 404 over https 【发布时间】:2020-04-19 19:14:46 【问题描述】:web.config
服务器上的设置:
<service name="ExporterWebService">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="secureHttpBinding"
contract="IExporterWebService"/>
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
而客户app.config
是:
<client>
<endpoint
address="https://sample.coom/webservice/rwar.svc"
binding="wsHttpBinding" bindingConfiguration="basicHttpBinding"
contract="IRIBExporterWebService.IExporterWebService"
name="BasicHttpBinding_IExporterWebService"/>
</client>
<basicHttpBinding>
<binding name="BasicHttpBinding_IExporterWebService" maxReceivedMessageSize="2147483647">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
我正在尝试使用 SSL 测试 WCF,但似乎遗漏了一些东西,我进行了大量搜索,但似乎无法找到我在配置中遗漏的内容,我有一个基本的 WCF 服务托管在IIS,我还有一个测试客户端 Web 应用程序正在调用 WCF 服务。
请帮忙!!! :-)
【问题讨论】:
你添加https绑定到服务器吗? 是的,服务器正常,其他客户端现在使用,只是我客户端出错 你在<wsHttpBinding>
绑定like here中有<security mode="Transport">
吗?
你能告诉我们bindingConfiguration="secureHttpBinding"
是如何在服务器上配置的吗?
@marc_s 亲爱的,服务器中的secureHttpBinding 配置是:<binding name="secureHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None"/> </security> </binding>
【参考方案1】:
您应该在添加服务引用时在客户端键入错误的服务地址。
客户端在消费Basichttpbiding
创建的服务时不会生成Wshttpbinding
创建的服务端点。
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="IExporterWebService"/>
<endpoint address="https://sample.coom/webservice/rwar.svc" binding="wsHttpBinding" bindingConfiguration="basicHttpBinding" contract="IRIBExporterWebService.IExporterWebService" name="BasicHttpBinding_IExporterWebService"/>
此外,服务器使用空的相对端点地址,而您的客户端使用 webservice
前缀。
<client> <endpoint address="https://sample.coom/webservice/rwar.svc" binding="wsHttpBinding" bindingConfiguration="basicHttpBinding" contract="IRIBExporterWebService.IExporterWebService" name="BasicHttpBinding_IExporterWebService"/>
此外,请在拨打电话前信任服务器证书以建立安全连接。
【讨论】:
你能解释一下你的意思吗? OP 到底做错了什么,他们应该如何解决这个问题? 好的,伙计。我已经完成了。请帮忙审核。【参考方案2】:我有一个错误,我们在服务器上通过拖曳地址拖曳 web 服务,我忘记在服务器上设置配置 https webService new 谢谢各位朋友
【讨论】:
以上是关于客户端中的 WCF 服务通过 https 返回 404的主要内容,如果未能解决你的问题,请参考以下文章
通过 HTTPS 上的客户端证书对 WCF 请求进行身份验证