使用Metro连接到WCF服务的问题 - HTTP Works,HTTPS没有

时间:2012-02-19 18:46:55

标签: java wcf ssl java-metro-framework

我正在使用我正在构建的Java客户端连接到WCF Web服务。其他人已经成功构建了WCF客户端以连接到此服务。通过HTTP提供的WSDL提供了消息级安全性。通过HTTPS可用的WSDL使用TLS和消息级安全性。我知道在消息级安全性之上使用TLS基本上是双重加密,但这是一个关键要求。

由于我可以正确连接到HTTP服务,我相信我已经解决了所有信任存储和密钥存储问题。

我使用Metro 2.1.1连接到该服务。我已经在Eclipse和Netbeans中构建了客户端。我从HTTP站点获取WSDL,并使用wsimport(带-extensions标志),我成功构建并执行客户端。

当我使用HTTPS站点获取WSDL时,我可以再次成功构建两个客户端。但是当我执行它们时 - 我收到以下错误:

    Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: An error occurred when verifying security for the message.
at com.sun.xml.ws.fault.SOAP12Fault.getProtocolException(SOAP12Fault.java:225)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140)
at $Proxy43.request(Unknown Source)

两个WSDL(通过HTTP获取的和另一个通过HTTPS获取的)之间的唯一区别是WSDL中对HTTPS://与HTTP://的引用。

我无法轻松访问WCF服务日志 - 通常在我请求一组日志和查看日志之间会有3-6小时的延迟。

我的问题是,是否有人遇到过类似的情况 - 我在这里公然缺少什么?我可以找到NetMon或Wireshark跟踪中的某些内容来查看问题是什么吗?我这几天一直在努力 - 任何帮助都会受到最高的赞赏。

1 个答案:

答案 0 :(得分:0)

如果您有权访问服务配置,请尝试在您正在使用的端点上禁用安全上下文:

<message establishSecurityContext="False" clientCredentialType="UserName"/>

您可以阅读有关安全上下文令牌(SCT)的更多信息: