2010-11-19 3 views
0

Ich verwende Ich bin auf einem Remote-Server für den Zugriff auf Visual Studio sowie MS CRM angemeldet. Ich habe Beispielcode aus SDK genommen und versuche, den Code auszuführen:MS crm Kontoerstellung: System.Net.WebException: Die Anfrage ist fehlgeschlagen mit HTTP-Status 401: Nicht autorisiert

CrmAuthenticationToken token = new CrmAuthenticationToken(); 

token.AuthenticationType = 0; 

token.OrganizationName = "AdventureWorksCycle"; 

CrmService service = new CrmService(); 
service.Url= "http://10.16.16.205:5555/mscrmservices/2007/crmservice.asmx"; 
service.CrmAuthenticationTokenValue = token; 

service.Credentials = new System.Net.NetworkCredential"username", "password", "domain"); 

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

// Set the properties of the account object. 
account.name = "Fourth Coffee123"; 
account.address1_line1 = "29 Market St."; 
account.address1_city = "Sam"; 
account.address1_stateorprovince = "MT1"; 
account.address1_postalcode = "9999"; 
account.donotbulkemail = new CrmBoolean(); 
account.donotbulkemail.Value = true; 

// Create the target object for the request. 
TargetCreateAccount target = new TargetCreateAccount(); 

// Set the properties of the target object. 
target.Account = account; 

// Create the request object. 
CreateRequest create = new CreateRequest(); 

// Set the properties of the request object. 
create.Target = target; 

// Execute the request. 
CreateResponse created = (CreateResponse)service.Execute(create); 

I Crm Web Service für diesen verwenden, aber sein Wurf Ausnahme:

Ausnahmedetails:

System.Net.WebException: The request failed with HTTP status 401: Unauthorized.

Source Error:

Line 114: [return: System.Xml.Serialization.XmlElementAttribute("Response")]

Line 115: public Response Execute(Request Request) {

Line 117: Request});

Line 118: return ((Response)(results[0]));

Antwort

0

Eine Sache, die Sie vermisst sind, ist ein echter Benutzername und Passwort. Ich gehe davon aus, dass Sie dies für die Zwecke dieser Frage weggelassen haben.

Haben Sie die Sicherheitsrolle für den Benutzer, den Sie für den Web Service-Aufruf verwenden, überprüft? Fügen Sie diesen Benutzer der Rolle Systemadministrator hinzu, falls Sie dies noch nicht getan haben.

Mit CRM oft hat dieser Fehler nichts mit Sicherheit zu tun, sondern etwas ganz anderes.

Zuerst CRM-Ablaufverfolgung aktivieren und dort suchen. Dies wird Ihnen mehr Fehlerdetails geben. Hier ist wie: http://support.microsoft.com/kb/907490

Sie können auch versuchen, meine Ausnahme Formatierer zu verwenden, um mehr Details über den Fehler zu erhalten. Dies ist eine Erweiterungsklasse, mit der Sie die Ausnahme formatieren und sie in die Standardausgabe oder die http-Antwort drucken können. Finden Sie es hier: http://paste.ly/5Y66

Verwenden Sie es auf diese Weise:

try { 
    // do all your stuff 
} catch (Exception ex) { 
    ex.Print(); 
} 

Beachten Sie, dass in der formatierten Ausnahme Ausgabe, können Sie die „Details“ Eigenschaft deserialisiert so sehen, dass Sie die Textversion sehen. Dies ist, wo CRM die wahre Ausnahme die meiste Zeit verbirgt.

Verwandte Themen