从ASP.NET网站我正在调用Web服务(需要证书)。当我在localhost(调试)上测试时,它可以工作,但是在IIS 6(Windows Server 2003)上,它不起作用并引发异常:
请求因HTTP状态而失败 403:禁止。
以下是代码,我如何调用Web服务:
Service service = new Service();
service.ClientCertificates.Add(new X509Certificate("certificate path", "password"));
service.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidationCallBack);
Result res = service.GetResult();
private static bool ValidationCallBack(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
出现此错误的原因是什么?如何避免这种情况?
我已尝试使用winForms进行Web服务调用,它在服务器上运行正常。所以我认为这是IIS问题......
谢谢!
答案 0 :(得分:0)
要解决此问题,您应该查看此link
403 - 禁止。你可以收到这个 如果是Web,通用403状态代码 网站没有默认文档集,并且 该网站未设置为允许目录 浏览。有关的更多信息 如何解决此问题,单击 以下文章编号来查看 Microsoft知识库中的文章 基地:
320051如何 配置默认文档 互联网信息服务
403.7 - 需要客户证书。您已将服务器配置为 需要为客户提供证书 身份验证,但你没有 有效的客户证书 已安装。186812 PRB: 错误消息:403.7禁止访问:客户端 需要证书
答案 1 :(得分:0)
您应该在服务器端启用tracing以更好地了解此问题。您将看到更好的异常消息或能够为您提供线索的内容。