CRM 4.0 und Webdienste

Hallo Community,

es ist mal wieder Zeit für eine Frage:

Wir haben bei uns den CRM-Server von 3.0 auf 4.0 geupdated - und läuft nun auch wunderbar. Die JavaScripts funktionieren auch, die wir selber erstellt haben. Nun haben wir auch einen Webservice erstellt, der sich beim service.create(incident) verabschiedet mit der Fehlermeldung "Fehler bei der Anforderung mit HTTP-Status 401: Unauthorized".

Ich habe im Projekt den alten Verweis gelöscht, der auf den CRMService im 2006er - Ordner verweist. Stattdessen habe ich den 2007er-Ordner und Service ausgewählt.

Ich habe im CRM den Internetuser mit Rechten versehen, die ihm erlauben, eine Anfrage zu erstellen (vorher hatte er die Rechte nicht und es funktionierte trotzdem).

Die angegebene Fehler-Quelldatei soll diese hier sein:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ba6f7383\db0d54fb\App_WebReferences.9lggnq8h.0.cs Zeile: 204

Da steht dann auch nichts weiter drin, als der eh schon rot markierte - angenommene - Fehler:
object[] results = this.Invoke("Create", new object[] {entity});

Ich habe dann auch in Erfahrung gebracht, dass das 3.0er-Framework lediglich eine Erweiterung des 2er-Frameworks ist - also liegt hier meiner Meinung nach auch kein Framework Fehler vor.

Bei der Stapelüberwachung sieht man deutlich, dass er die Prozedur beim Aufruf des service.create(incident) verlässt.

--> Update tut nicht immer gut !

Wer kann mir helfen und Hinweise zur Lösung geben?

Danke!

Rosenrot


AW: CRM 4.0 und Webdienste

Hi,

vielleicht noch als kleine Zusatzinfo: ich probiere gerade mit Security Token herum.

Dim authtoken As CrmAuthenticationToken

authtoken = New CrmAuthenticationToken

authtoken.AuthenticationType = 1

authtoken.OrganizationName = "<meineFirma>"

authtoken.CallerId = New Guid("{772790B8-76A1-DC11-B621-00304871FFC8}")

service.CrmAuthenticationTokenValue = authtoken

Führt aber zu dem selben Ergebnis. Scheinbar falsche Stelle ?!?

Gruß,

Rosenrot


AW: CRM 4.0 und Webdienste

Hallo Rosenrot,

zum Erstellen eines Datensatzes bzw. für den generellen Zugriff auf den CrmService ist tatsächlich ein CrmAuthenticationToken notwendig.

Hier ist ein Beispiel aus dem CRM 4.0 SDK:
http://msdn.microsoft.com/en-us/library/bb928994.aspx

// Set up the CRM Service.
CrmAuthenticationToken token = new CrmAuthenticationToken();
// You can use enums.cs from the SDK\Helpers folder to get the enumeration for Active Directory authentication.
token.AuthenticationType = 0;
token.OrganizationName = "AdventureWorksCycle";

CrmService service = new CrmService();
service.Url = "http://<servername>:<port>/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Create the contact object.
contact contact = new contact();

// Create the properties for the contact object.
contact.firstname = "Jesper";
contact.lastname = "Aaberg";
contact.address1_line1 = "23 Market St.";
contact.address1_city = "Sammamish";
contact.address1_stateorprovince = "MT";
contact.address1_postalcode = "99999";
contact.donotbulkemail = new CrmBoolean();
contact.donotbulkemail.Value = true;

// Create the contact in Microsoft Dynamics CRM.
Guid contactGuid = service.Create(contact);