Web服务调用问题

时间:2011-05-21 11:23:19

标签: c# asp.net web-services security

从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问题......

谢谢!

2 个答案:

答案 0 :(得分:0)

要解决此问题,您应该查看此link

  

403 - 禁止。你可以收到这个   如果是Web,通用403状态代码   网站没有默认文档集,并且   该网站未设置为允许目录   浏览。有关的更多信息   如何解决此问题,单击   以下文章编号来查看   Microsoft知识库中的文章   基地:
320051如何   配置默认文档   互联网信息服务


  

403.7 - 需要客户证书。您已将服务器配置为   需要为客户提供证书   身份验证,但你没有   有效的客户证书   已安装。186812 PRB:   错误消息:403.7禁止访问:客户端   需要证书

答案 1 :(得分:0)

您应该在服务器端启用tracing以更好地了解此问题。您将看到更好的异常消息或能够为您提供线索的内容。