0

CRM 4.0との互換性のために、ダイナミクスCRM 2011にCrmDiscoveryService.asmxを使用する必要があります。私は、IFDの真偽アルゴリズムをimpemented、今で動作しますdoesntの:私のASP.NETアプリケーションから接続すると、401エラーが発生します。 〜CrmDiscoveryService.asmx(CRM 2011)

私は(匿名接続が有効)ブラウザからCrmDiscoveryService.asmxに正常に私を接続することができ URL:ます。https://internalcrm.organme> .COM:444/mscrmservices/2007/spla/crmdiscoveryservice.asmx

しかし、私がASP.NETから同じURLに接続しようとすると、私は401エラーを受け取ります。 コード:

RetrieveCrmTicketRequest crmTicketRequest = new RetrieveCrmTicketRequest(); 
crmTicketRequest.OrganizationName = OrgUniqueName; 
crmTicketRequest.UserId = "bnet"+"\\"+"izz"; 
crmTicketRequest.Password = "pass"; 
CrmDiscoveryService discoveryService = serviceHandler.CreateCrmDiscoveryService(crmDiscoveryServiceUrl); 
discoveryService.UseDefaultCredentials = true; 
RetrieveCrmTicketResponse crmTicketResponse = 
(RetrieveCrmTicketResponse)discoveryService.Execute(crmTicketRequest); 

//Trust all certificates 
System.Net.ServicePointManager.ServerCertificateValidationCallback = 
((sender, certificate, chain, sslPolicyErrors) => true); 

答えて

0

がparamoshが検出サービスに資格情報を設定してみてください、と言ったので、それはサンプルUsing the CrmDiscoveryService Web Service: IFD

// Configure an instance of the CrmDiscoveryService Web service proxy. 
CrmDiscoveryService disco = new CrmDiscoveryService(); 
disco.Url = "https://localhost/MSCRMServices/2007/SPLA/CrmDiscoveryService.asmx"; 

//Retrieve a list of available organizations from the CrmDiscoveryService Web service. 
RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest(); 
// Substitute an appropriate domain, username, and password here. 
orgRequest.UserId = domain + "\\" + username; 
orgRequest.Password = password; 
RetrieveOrganizationsResponse orgResponse = (RetrieveOrganizationsResponse)disco.Execute(orgRequest); 

//Find the target organization. 
OrganizationDetail orgInfo = null; 

foreach (OrganizationDetail orgdetail in orgResponse.OrganizationDetails) 
{ 
    if (orgdetail.OrganizationName.Equals("AdventureWorksCycle")) 
    { 
     orgInfo = orgdetail; 
     break; 
    } 
} 

// Check whether a matching organization was not found. 
if (orgInfo == null) 
    throw new Exception("The specified organization was not found."); 

//Retrieve a CrmTicket from the CrmDiscoveryService Web service. 
RetrieveCrmTicketRequest ticketRequest = new RetrieveCrmTicketRequest(); 
ticketRequest.OrganizationName = orgInfo.OrganizationName; 
ticketRequest.UserId = domain + "\\" + username; 
ticketRequest.Password = password; 
RetrieveCrmTicketResponse ticketResponse = 
    (RetrieveCrmTicketResponse)disco.Execute(ticketRequest); 
+0

前提に感謝しますが、成功しません。私は同じエラーがあります。 – Igor

+0

あなたのコードでユーザー資格情報を設定することもできますが、 'discoveryService.UseDefaultCredentials = true;'は使用しないでください。 – paramosh

+0

よろしくお願いいたします。ありがとうございます – Igor

0

のように、利用できる団体のリストを取得からスタートしても意味があることかもしれません

discoveryService.Credentials = new System.Net.NetworkCredential( "izz"、 "password"、 "bnet");

関連する問題