none
WhoAmIResponse unter vb.net (VS2010) mit SOAP RRS feed

  • Frage

  • Hallo zusammen
    Ich versuche mittels der SOAP Schnittstelle auf CRM 2011 zuzugreifen.
    Hierfür habe ich eine Test Applikation erstellt und die Service References (http://crmserver:5555/mscrmservices/2007/CrmServiceWsdl.aspx) importiert.
    Nun versuche ich eine einfache WhoAmIResponse zu erhalten.
                
    Dim SOAPClient As New CrmService.CrmServiceSoapClient()
    Dim CrmAuthenticationToken As New CrmService.CrmAuthenticationToken
    Dim CallerOriginToken As New CrmService.CallerOriginToken
    Dim CorrelationToken As New CrmService.CorrelationToken
    CrmAuthenticationToken.AuthenticationType = 0
    
    CrmAuthenticationToken.OrganizationName = "UnsereOrganisation"
    SOAPClient.ClientCredentials.UserName.UserName = "user"
    SOAPClient.ClientCredentials.UserName.Password = "pass"
    SOAPClient.ClientCredentials.Windows.ClientCredential.Domain = "UnsereDomäne"
    
    SOAPClient.ClientCredentials.Windows.ClientCredential.UserName = "user"
    SOAPClient.ClientCredentials.Windows.ClientCredential.Password = "pass"
    ' Create the request object.
    Dim userRequest As New CrmService.WhoAmIRequest()
    ' Execute the request.
    Dim user As CrmService.WhoAmIResponse = CType(SOAPClient.Execute(CrmAuthenticationToken, CallerOriginToken, CorrelationToken, userRequest), CrmService.WhoAmIResponse)
    Leider erhalte ich dabei die Fehlermeldung "Die HTTP-Anforderung ist beim Clientauthentifizierungsschema "Anonymous" nicht autorisiert. Vom Server wurde der Authentifizierungsheader "Negotiate,NTLM" empfangen. ---> System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (401) Nicht autorisiert."
    SOAP Aufrufe aus dem CRM (mit JavaScript) funktionnieren einwandfrei...
    Hat jemand ein Beispiel wie die Verbindung aufgebaut werden kann?
    Danke und Gruss
    Marc

    Marc
    Mittwoch, 30. März 2011 15:44

Antworten

  • Hallo Marc,

    gib doch testweise einmal den Anonymous Zugriff auf die CRM Website frei, funktioniert es dann?


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website
    • Als Antwort markiert Michael Sulz Mittwoch, 25. Februar 2015 07:54
    Mittwoch, 30. März 2011 15:58
  • Hallo Marc,

    nicht den Pfad im FIlesystem, die Anonymous Anmeldung im IIS für die Wesite des CRM.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website
    • Als Antwort markiert Michael Sulz Mittwoch, 25. Februar 2015 07:54
    Donnerstag, 31. März 2011 06:17
  • Du hast die Webreferenz falsch erstellt. Du verwendest momentan einen WCF-Proxy. Diesen kannst du nicht mit Dynamics CRM 4 verwenden.
    Siehe http://msdn.microsoft.com/en-us/library/cc151015.aspx

    Du musst im "Add Service Reference" Dialog auf "Advanced" gehen. Hier kannst du dann die Webreferenz setzen. Damit sollte es dann auch funktionieren.


    My Blog

    Michael Sulz: So ist es übersichtlicher :-)

    • Als Antwort markiert Michael Sulz Freitag, 1. April 2011 09:18
    • Bearbeitet Michael Sulz Freitag, 1. April 2011 09:19 Doppelten Eintrag gelöscht
    Donnerstag, 31. März 2011 09:58
  • Danke an CKELLER für seine Lösung:

    >>

    Du hast die Webreferenz falsch erstellt. Du verwendest momentan einen WCF-Proxy. Diesen kannst du nicht mit Dynamics CRM 4 verwenden.
    Siehe 
    http://msdn.microsoft.com/en-us/library/cc151015.aspx

    Du musst im "Add Service Reference" Dialog auf "Advanced" gehen. Hier kannst du dann die Webreferenz setzen. Damit sollte es dann auch funktionieren.

    <<

    Damit funktioniert es nun einwandfrei. Der vollständige Code ist nun:

    Dim CrmService As New dsvdynamics2.CrmService
    CrmService.Credentials = System.Net.CredentialCache.DefaultCredentials
    
    Dim CrmAuthenticationToken As New dsvdynamics2.CrmAuthenticationToken
    CrmAuthenticationToken.AuthenticationType = 0
    CrmAuthenticationToken.OrganizationName = "UnsereOrganisation"
    CrmService.CrmAuthenticationTokenValue = CrmAuthenticationToken
    
    ' Create the request object.
    Dim userRequest As New dsvdynamics2.WhoAmIRequest()
    
    ' Execute the request.
    Dim user As dsvdynamics2.WhoAmIResponse = CrmService.Execute(userRequest)
    

     

    Herzlichen Dank an alle!


    Marc
    • Als Antwort markiert mawnet Donnerstag, 31. März 2011 12:05
    Donnerstag, 31. März 2011 12:05

Alle Antworten

  • Hallo Marc,

    gib doch testweise einmal den Anonymous Zugriff auf die CRM Website frei, funktioniert es dann?


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website
    • Als Antwort markiert Michael Sulz Mittwoch, 25. Februar 2015 07:54
    Mittwoch, 30. März 2011 15:58
  • Hallo Michael

     

    Herzlichen Dank für Deine prompte Antwort.

    Ja, habe ich schon versucht.

    Ich habe den Pfad C:\Program Files\Microsoft Dynamics CRM\CRMWeb\MSCRMServices für JEDER mit der Berrechtigung Vollzugriff geschaltet.

    Doch leider ohne Erfolg.

     

    Gruss

    Marc

     


    Marc
    Mittwoch, 30. März 2011 16:06
  • Hallo Marc,

    nicht den Pfad im FIlesystem, die Anonymous Anmeldung im IIS für die Wesite des CRM.


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website
    • Als Antwort markiert Michael Sulz Mittwoch, 25. Februar 2015 07:54
    Donnerstag, 31. März 2011 06:17
  • Hallo Michel

     

    Ja, die "Anonyme Authentifizierung" ist auf der CRM Webseite aktiviert.

    Gibt es sonst noch relevante Einstellung für die Authentifizierung?

    Wenn ich die Seite "http://crmserver:5555/mscrmservices/2007/CrmServiceWsdl.aspx" direkt im Browser aufrufe, komme ich auch auch ohne Probleme (und ohne Login) auf die WSDL Seite.

     

    Gruss


    Marc
    • Als Antwort markiert mawnet Donnerstag, 31. März 2011 11:56
    • Tag als Antwort aufgehoben mawnet Donnerstag, 31. März 2011 11:56
    Donnerstag, 31. März 2011 08:08
  • Du hast die Webreferenz falsch erstellt. Du verwendest momentan einen WCF-Proxy. Diesen kannst du nicht mit Dynamics CRM 4 verwenden.
    Siehe http://msdn.microsoft.com/en-us/library/cc151015.aspx

    Du musst im "Add Service Reference" Dialog auf "Advanced" gehen. Hier kannst du dann die Webreferenz setzen. Damit sollte es dann auch funktionieren.


    My Blog

    Michael Sulz: So ist es übersichtlicher :-)

    • Als Antwort markiert Michael Sulz Freitag, 1. April 2011 09:18
    • Bearbeitet Michael Sulz Freitag, 1. April 2011 09:19 Doppelten Eintrag gelöscht
    Donnerstag, 31. März 2011 09:58
  • Danke an CKELLER für seine Lösung:

    >>

    Du hast die Webreferenz falsch erstellt. Du verwendest momentan einen WCF-Proxy. Diesen kannst du nicht mit Dynamics CRM 4 verwenden.
    Siehe 
    http://msdn.microsoft.com/en-us/library/cc151015.aspx

    Du musst im "Add Service Reference" Dialog auf "Advanced" gehen. Hier kannst du dann die Webreferenz setzen. Damit sollte es dann auch funktionieren.

    <<

    Damit funktioniert es nun einwandfrei. Der vollständige Code ist nun:

    Dim CrmService As New dsvdynamics2.CrmService
    CrmService.Credentials = System.Net.CredentialCache.DefaultCredentials
    
    Dim CrmAuthenticationToken As New dsvdynamics2.CrmAuthenticationToken
    CrmAuthenticationToken.AuthenticationType = 0
    CrmAuthenticationToken.OrganizationName = "UnsereOrganisation"
    CrmService.CrmAuthenticationTokenValue = CrmAuthenticationToken
    
    ' Create the request object.
    Dim userRequest As New dsvdynamics2.WhoAmIRequest()
    
    ' Execute the request.
    Dim user As dsvdynamics2.WhoAmIResponse = CrmService.Execute(userRequest)
    

     

    Herzlichen Dank an alle!


    Marc
    • Als Antwort markiert mawnet Donnerstag, 31. März 2011 12:05
    Donnerstag, 31. März 2011 12:05