程序包括IIS托管的服务端和客户端,通过证书进行加密,服务端和客户端各自带有一个证书和私钥,在内网服务器上测试正常,客户端能够调用服务端数据,但是服务端发布到阿里云之后客户端提示以下错误:
************** 异常文本 **************
System.ServiceModel.Security.SecurityNegotiationException: 无法打开安全通道,因为与远程终结点的安全协商已失败。这可能是由于用于创建通道的 EndpointAddress 中不存在 EndpointIdentity 或错误指定了 EndpointIdentity。请确认由 EndpointAddress 指定或暗示的 EndpointIdentity 正确标识了远程终结点。 ---> System.ServiceModel.FaultException: 对安全令牌的请求具有无效或格式不正确的元素。
在 System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target)
在 System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)
--- 内部异常堆栈跟踪的结尾 ---
云服务器是windows server 2016数据中心版,本地服务器是win10,浏览器可以正常浏览云端的svc文件,程序向云服务器和本地服务器发布都是ftp直接发布,证书也一样,客户端分别对两个服务器重新添加引用得到的identity节点下的certificate encodedValue值都是一样的。把客户端上传到云服务器,分别用网址、公网IP和内网IP标记endpoint address进行连接全都报上面的错误。客户端identity节点下只有一个引用时生成的certificate encodedValue,没有其他内容和dns节点。请教各位高手在云服务器上出现的问题到底是什么原因?