我有一个简单的web服务调用,由.NET(C#)2.0 Windows应用程序,通过Visual Studio生成的web服务代理,用于同样用C#(2.0)编写的web服务.这已经奏效了好几年,并在十几个地方继续如此.

新站点的新安装遇到问题.当try 调用Web服务时,它会失败,并显示以下消息:

无法为SSL/TLS安全建立信任关系 通道

web服务的URL使用SSL(https://)——但这在许多其他位置已经运行了很长时间(并将继续).

我该往哪里看?这可能是Windows和之间的安全问题.NET是此安装所独有的吗?如果是,我应该在哪里建立信任关系?我迷路了!

推荐答案

idea (基于过go 的痛苦):

  • 您有到服务器的DNS和视线吗?
  • 您使用的是证书中的正确名称吗?
  • 证书仍然有效吗?
  • 配置不当的负载平衡器会把事情搞砸吗?
  • 新的服务器机器的时钟设置是否正确(即UTC时间是否正确[忽略本地时间,这在很大程度上是不相关的])-这对WCF肯定很重要,因此可能会影响常规SOAP?
  • 是否存在证书信任链问题?如果你从服务器浏览到SOAP服务,你能得到SSL吗?
  • 与上述内容相关-证书是否已安装到正确的位置?(您可能需要受信任的根证书颁发机构提供一份副本)
  • 服务器的机器级代理设置是否正确?(与用户的代理不同);请参阅XP/2003的proxycfg(不确定Vista等)

.net相关问答推荐

尽管有`disable`注释,但未 suppress Pylint语法错误

为什么解码后的字节数组与原始字节数组不同?

我在哪里可以获得线程安全的 CollectionView?

string.Format 如何处理空值?

MongoDB C# 驱动程序 - 忽略绑定字段

如何获取 Sql Server 数据库中所有模式的列表

如何明智地使用 StringBuilder?

如何使用c#从excel文件中读取数据

从 Web.Config 中的邮箱友好显示名称存储 Smtp

大型 WCF Web 服务请求因 (400) HTTP 错误请求而失败

在 C# 中转义命令行参数

C# 的浮点比较函数

VB.NET 与 C# 整数除法

如何使用配置转换删除 ConnectionString

ASP.NET Core (.NET Core) 和 ASP.NET Core (.NET Framework) 的区别

List 是否保证项目将按照添加的顺序返回?

浮动与双重性能

序列化一个可为空的 int

System.ServiceModel 在 .NET Core 项目中找不到

SqlParameter 已被另一个 SqlParameterCollection 包含 - using() {} 作弊吗?