none
401 unauthorized 高手帮我看看!!急!! RRS feed

  • 问题

  • 调用webServiceq获取某些客户的信息,报这个错误system.net.webexception 请求因 http 状态 401 失败 unauthorized!!!

    部分代码是这样的,应该没有错啊

    CrmService service = new CrmService();
    
    service.Url = CrmServiceUrl;//webservice地址
    
    service.Credentials = System.Net.CredentialCache.DefaultCredentials;
    
    CrmAuthenticationToken token = new CrmAuthenticationToken();
    
    token.AuthenticationType = 0;//AD验证方式
    
    token.OrganizationName = OrganizationName;//组织名称
    
    service.CrmAuthenticationTokenValue = token;
    
    return service;
    
    
    
    
    
    
    
    
    2010年5月26日 7:26

答案

全部回复

  • CrmServiceUrl的地址,是否正确.是否确认为AD部署

     

    2010年5月30日 12:41
  • 都在同一台服务器,服务器配置为(WIN2003 + AD +EXCHANGE2003 + CRM4.0)

    2010年5月31日 7:27
  • 你的权限问题,解决如下

    1.在CRM网站下建一个虚拟目录,将你的程序布置到此目录下

    2.在web.config中 配置 system.web,添加<httpModules>

       <remove name="CrmAuthentication" />

      </httpModules>

     


    CRM----BEST
    2010年5月31日 9:10
  • 或者多放一些代码过来 可以更多了解一下
    2010年5月31日 11:29
  • 不行!还是报错

    2010年6月1日 8:01
  • public BusinessEntity[] GetAllAccount()
        {
          CrmService service = new CrmService();
          service.Url = CrmServiceUrl;//webservice地址
    	  service.Credentials = System.Net.CredentialCache.DefaultCredentials;
    	  CrmAuthenticationToken token = new CrmAuthenticationToken();
    	  token.AuthenticationType = 0;
    	  token.OrganizationName = OrganizationName;//组织名称
    	  service.CrmAuthenticationTokenValue = token;
    									
          QueryExpression query = new QueryExpression();
          query.ColumnSet = new AllColumns();
          query.EntityName = EntityName.account.ToString();
          BusinessEntityCollection retrieved = service.RetrieveMultiple(query);
          return retrieved.BusinessEntities;
        }
        
    
    

    请求因 HTTP 状态 401 失败: Unauthorized。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败: Unauthorized。

    源错误:


    行 341:        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple", RequestNamespace="http://schemas.microsoft.com/crm/2007/WebServices", ResponseNamespace="http://schemas.microsoft.com/crm/2007/WebServices", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    行 342:        public BusinessEntityCollection RetrieveMultiple(QueryBase query) {
    行 343:            object[] results = this.Invoke("RetrieveMultiple", new object[] {
    行 344:                        query});
    行 345:            return ((BusinessEntityCollection)(results[0]));
     

    源文件: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mscrmextension\4b0b02f5\c3034b60\App_WebReferences.z8geegtj.0.cs    行: 343

     

    2010年6月1日 8:03
  • 看看是不是这个原因:

    http://support.microsoft.com/kb/948746


    Jim Wang - MVP Dynamics CRM - http://jianwang.blogspot.com, http://www.mscrm.cn
    2010年6月2日 15:19
    版主
  • 应该是你没有登陆这个组织的windows凭据,先用有权限的用户登陆一下这个CRM系统,在登陆下的可选框上选择记住密码,这样就有啦登陆凭据,再重新试试看


    CRM----BEST
    2010年6月13日 5:48