我对部署的Web应用程序有一个非常奇怪的问题。
相关数据:
Application Server: IIS 7.5
Server: Windows Server 2008 R2 Standard SP1
Framework: ASP.NET
.NET Framework: 4 (4.0.30319)
Application Pool: Integrated
我在Web应用程序中使用了通过客户端证书身份验证进行身份验证的服务。我没有与身份验证本身有关的问题(它正在我的开发环境中工作)。但是每当我想在服务器(生产)环境中使用该服务时,我都会遇到问题。
这里是CODE的相关部分:
private void SetupClienteCertificate(HttpWebRequest req)
{
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
var crt = new X509Certificate2(
txtClientCertificateFile.Text,
txtCertificatePassword.Text,
X509KeyStorageFlags.MachineKeySet
);
req.ClientCertificates.Add(crt);
}
我得到的错误很常见且不言自明:
The request was aborted: Could not create SSL/TLS secure channel.
非常奇怪的部分,如果我从C#
.Net Windows Forms桌面应用程序运行完全相同的代码(具有相同的。 NET 4框架)我可以获得与服务器通信的代码。
所以我的问题是:为什么它可以从桌面应用程序运行而不能使用ASP.NET Web应用程序?
我已经确定的一些东西:
有什么想法吗?
答案 0 :(得分:1)
我想我得到了你的问题。 您能否确保运行应用程序池的帐户具有从证书中读取证书的足够权限 存储强>