J'ai une instance crm 2011 s'exécutant sur une boîte qui est jointe à un domaine. J'essaie d'exécuter crmsvcutil depuis l'extérieur du domaine en utilisant ce qui suit.CrmSvcUtil.exe lançant une erreur 401 non autorisée
CrmSvcUtil.exe /out:Xrm.cs /url:http://crm.mydomain.com/MSCRMDEV/XRMServices/2011/OrganizationData.svc/ /domain:MYDOMAIN /u:mydomain\username /p:mypassword /namespace:Xrm /serviceContextName:XrmServiceContext
Cela génère l'erreur suivante
CrmSvcUtil.exe Error: 0 : Exiting program with exit code 2 due to exception : System.InvalidOperationException: Metadata contains a reference that cannot be resolved: 'http://crm.mydomain.com/XRMServices/2011/OrganizationData.svc/?wsdl'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.GetResponse() at System.ServiceModel.Description.MetadataExchangeClient.MetadataLocationRetriever.DownloadMetadata(TimeoutHelper timeoutHelper) at System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper) --- End of inner exception stack trace --- at System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper) at System.ServiceModel.Description.MetadataExchangeClient.ResolveNext(ResolveCallState resolveCallState) at System.ServiceModel.Description.MetadataExchangeClient.GetMetadata(MetadataRetriever retriever) at Microsoft.Xrm.Sdk.Client.ServiceMetadataUtility.RetrieveServiceEndpointMetadata(Type contractType, Uri serviceUri, Boolean checkForSecondary) at Microsoft.Xrm.Sdk.Client.ServiceConfiguration
1..ctor(Uri serviceUri, Boolean checkForSecondary) at Microsoft.Xrm.Sdk.Client.ServiceConfiguration
1..ctor(Uri serviceUri) at Microsoft.Xrm.Sdk.Client.OrganizationServiceConfiguration.AdjustServiceEndpoint(Uri serviceUri) at Microsoft.Xrm.Sdk.Client.OrganizationServiceConfiguration..ctor(Uri serviceUri) at Microsoft.Xrm.Sdk.Client.ServiceConfigurationFactory.CreateConfiguration[TService](Uri serviceUri) at Microsoft.Crm.Services.Utility.SdkMetadataProviderService.CreateOrganizationServiceEndpoint() at Microsoft.Crm.Services.Utility.SdkMetadataProviderService.Microsoft.Crm.Services.Utility.IMetadataProviderService.LoadMetadata() at Microsoft.Crm.Services.Utility.CrmSvcUtil.Run() at Microsoft.Crm.Services.Utility.CrmSvcUtil.Main(String[] args)
La trace de Fiddler
HTTP/1.1 401 Unauthorized Cache-Control: private Content-Length: 0 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 WWW-Authenticate: Negotiate WWW-Authenticate: NTLM X-Powered-By: ASP.NET Date: Mon, 06 Aug 2012 00:44:07 GMT Proxy-Support: Session-Based-Authentication No Proxy-Authenticate Header is present. WWW-Authenticate Header is present: Negotiate WWW-Authenticate Header is present: NTLM
L'utilisateur/passe sont que d'un administrateur de domaine qui est également un administrateur de crm. Qu'est-ce que je rate? La chose intéressante à noter est que l'URL dans le message d'erreur ne contient pas le nom ORG
« http://crm.mydomain.com/XRMServices/2011/OrganizationData.svc » --- < manque org nom ici
de journaux IIS je vois un 401,5 qui est "une demande d'extension ISAPI ou CGI a rejeté la demande":
2012-08-12 16:50:03 192.168.230.201 GET/MYORGNAME/XRMServices/2011/OrganizationData.svc wsdl + OnBeginRequest: 08/12/2012-16: 50: 03.527 + LogEntries: 0 + SqlCalls: 0 + SqlCallsMs: 0 + GC: 1 + OnEndRequest: 16: 50: 03.528 80 - 192.168.230.201 - 401 5 0 3 2012-08-12 16:50:03 19 2.168.230.201 GET /XRMServices/2011/OrganizationData.svc wsdl + OnBeginRequest: 08/12/2012-16: 50: 03.538 + LogEntries: 0 + SqlCalls: 0 + SqlCallsMs: 0 + GC: 1 + OnEndRequest: 16: 50: 03,538 80 - 192.168.230.201 - 401 5 0 4
Ceci se produit lors de l'exécution sur place la boîte de CRM lui-même ne ressemble donc pas à un problème de domaine croisé –
si vous naviguez vers le point de terminaison en tant qu'utilisateur ce qui se passe? –
navigation via le navigateur woks bien. challenge/réponse lorsque vous passez à travers le domaine anh intégré auth quand vous êtes dans le domaine –