“在生产WCF上找不到X.509证书”但在Staging和local中工作

时间:2016-01-06 22:23:42

标签: wcf ssl

我们正在与我们合作的公司提供证书。证书需要安装在“当前用户\受信任的人”下(使用他们的SDK)。

我们的WCF服务在IIS下运行,并且应用程序池标识已分配给特定用户。

在我的本地机器上,一切正常 在我们的临时服务器上,我以WCF服务运行的用户身份登录并安装了证书,一切运行正常。
在我们的生产服务器上,我做了同样的事情,但没有找到证书 证书肯定在那里。当以该用户身份登录时,我在那里看到它。我可以使用“当前用户”的根目录中找到“查找证书”,但是当我的代码运行时,它找不到证书。

另一个奇怪的问题是,如果我作为在IIS中运行应用程序池的用户登录到生产服务器,代码运行正常(它可以轻松找到证书)。只有当代码通过IIS中的实际服务运行时才能找到证书。

我在这个问题上看到的每一个问题,我都已尝试过解决方案(或者它们不适用) 任何人都可以告诉我任何事情要看看为什么这个设置在Staging中工作但不在我们的生产服务器中?

1 个答案:

答案 0 :(得分:0)

问题原来是IIS内应用程序池的“高级设置”中的“LoadUserProfile”设置。将其设置为“True”会加载证书 在作为在IIS中运行服务的用户运行命令提示符后,我意外发现了这一点。当该命令提示符打开时,代码突然能够正确找到证书。