2009-02-13 6 views
0

J'essaie d'appeler mon web personnalisé qui est déployé dans le cadre de CRM4 et a reçu l'erreur suivante:erreur à appeler le service Web personnalisé service à partir de plug-in

Client found response content type of 'text/html; charset=utf-8', but expected 'text/xml'. 
    The request failed with the error message: 
    -- 
     <html> 
      <head> 
       <title>No Microsoft Dynamics CRM user exists with the specified domain name and user ID</title> 
       <style> 
     ... 
       </style> 
      </head> 

      <body bgcolor="white"> 

        <span><H1>Server Error in '/RecurrenceService' Application.<hr width=100% size=1 color=silver></H1> 

        <h2> <i>No Microsoft Dynamics CRM user exists with the specified domain name and user ID</i> </h2></span> 

     ... 

     <table width=100% bgcolor="#ffffcc"> 
         <tr> 
          <td> 
     [CrmException: No Microsoft Dynamics CRM user exists with the specified domain name and user ID] 
      Microsoft.Crm.Authentication.WindowsAuthenticationProvider.Authenticate(HttpApplication application) +895 
      Microsoft.Crm.Authentication.AuthenticationStep.Authenticate(HttpApplication application) +125 
      Microsoft.Crm.Authentication.AuthenticationPipeline.Authenticate(HttpApplication application) +66 
      Microsoft.Crm.Authentication.AuthenticationEngine.Execute(Object sender, EventArgs e) +513 
      System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92 
      System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64 

          </td> 
         </tr> 
        </table> 

        <br> 

        <hr width=100% size=1 color=silver> 

        <b>Version Information:</b> Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433 

        </font> 

      </body> 
     </html> 
     <!-- 
     [CrmException]: No Microsoft Dynamics CRM user exists with the specified domain name and user ID 
      at Microsoft.Crm.Authentication.WindowsAuthenticationProvider.Authenticate(HttpApplication application) 
      at Microsoft.Crm.Authentication.AuthenticationStep.Authenticate(HttpApplication application) 
      at Microsoft.Crm.Authentication.AuthenticationPipeline.Authenticate(HttpApplication application) 
      at Microsoft.Crm.Authentication.AuthenticationEngine.Execute(Object sender, EventArgs e) 
      at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
      at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 
     --> 
     --. 

code pour appeler mon service web:

RecurrenceService serv = new RecurrenceService(); 
serv.Credentials = System.Net.CredentialCache.DefaultCredentials; 
string result = serv.UpdateSeries(); 

url CRM4: http://cw-dev-5/loader.aspx

url service personnalisé: http://cw-dev-5/RecurrenceService/RecurrenceService.asmx

L'extrait de code suivant System.Security.Principal.WindowsIdentity.GetCurrent().Name renvoie NT AUTHORITY\NETWORK SERVICE (Je suppose que c'est une cause d'erreur)

Quelqu'un pourrait-il me suggérer une solution pour résoudre mon problème?

Répondre

0

Est-ce que cela l'appelle depuis un site ASP.Net? Vous devrez peut-être modifier l'identité du pool d'applications à un utilisateur de domaine qui a accès au site de CRM (il essaie d'utiliser actuellement NT AUTHORITY \ SERVICE RÉSEAU)

+0

J'essaie d'appeler mon service depuis le plugin. –

0

yep le webservice qui appelle les services CRM

custom service url: " http://cw-dev-5/RecurrenceService/RecurrenceService.asmx "

Il doit être connecté en tant qu'utilisateur crm tel que défini dans l'administrateur de l'utilisateur CRM.

Si vous appelez d'un plug-in - qui doit aussi être l'identité qui a une configuration utilisateur dans CRM

0

Peut-être que vous utilisez un système d'exploitation non-anglais? D'une manière ou d'une autre, pour quelque raison que ce soit, le nom de connexion du service réseau est parfois localisé lorsque le système d'exploitation est traduit dans d'autres langues. Maintenant, beaucoup de programmes s'attendent à ce que le nom de connexion soit codé en dur dans "NT AUTHORITY \ NETWORK SERVICE" - dans une version allemande de Windows par exemple, le nom du compte est "NT-AUTORITÄT \ NETZWERKDIENST". Donc, votre programme recherche le nom anglais, ne le trouve pas et affiche une erreur.

Vous ne savez pas si cela s'applique à votre problème, mais cela peut valoir la peine d'être vérifié!

0

Si votre serveur CRM a plusieurs orgs sur, vous aurez besoin de mettre le nom de l'organisation dans votre URL:

http://cw-dev-5/SomeOrgName/RecurrenceService/RecurrenceService.asmx 

Vous devez faire si l'application Web est sur le site Web CRM car CRM authentifiera l'utilisateur et verra s'il existe dans cette organisation. Si vous laissez l'org désactivé, il utilise l'org par défaut.

Voici une documentation MSDN sur comment cela fonctionne: Using Microsoft Dynamics CRM URLs.