ASP.net mit CRM user vom crm setzen

Liebe/-r Experte/-in,

Ich habe eine ASP.Net web-Application, in der ich den aktuel angemeldeten user vom CRM brauche (wegen filtered views von account, contacts, etc.).

Wenn ich die applikation lokal laufen lasse(zum Testen) mit der server sql connection bekomme ich den Fehler: „Possible SOAP version mismatch: Envelope namespace http://schemas.xmlsoap.org/wsdl/ was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/.

nach dem veröffentlichen der Application auf dem CRM Server kommt folgender fehler:

Object moved Object moved to here.

System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1769947
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +345
project.CrmSdk.CrmService.Execute(Request Request) in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Web References\CrmSdk\Reference.cs:148
project.getCRMuserImpersonate() in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:268
project.buildSqlConnectionAndRun(String sqlStatememt) in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:286
project.createRecursive(String accountID) in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:454
project.initialize(String accountID) in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:369
project._Default.runThePage() in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:1229
project._Default.ButtonRun_Click(Object sender, EventArgs e) in C:\Work\CRMDEV\Server-Side-Scripting\CRM4.0\project\project\Default.aspx.cs:1537
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691

mein Code:
getCRMuserImpersonate(){
CrmAuthenticationToken token = new CrmAuthenticationToken();
token.AuthenticationType = 1; // Use Active Directory authentication
token.OrganizationName = „ORG“;

CrmService service = new CrmService();
service.Url = „http://crm.org.internal/mscrmservices/2007/CrmServic…“;
service.CrmAuthenticationTokenValue = token;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

WhoAmIRequest userRequest = new WhoAmIRequest();
Response test = service.Execute(userRequest); // HERE IS THE ERROR IF RUNNING LOKAL
WhoAmIResponse user = (WhoAmIResponse)test;
token.CallerId = user.UserId;
}

getCRMuserImpersonate();
string conString = String.Empty;
conString = ConfigurationManager.ConnectionStrings[„nameConString“].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStatememt, conString))
adapter.Fill(selectResult);
}

der connction string schaut so aus:

Ich hab schon eingehend gesucht und nichts gefunden, was mein Proble lößt.
Danke.

Habe auch noch versucht, eine fixe Id anzugeben. Dann bringt es zwar keinen Fehler mehr, aber es bringt keine Ergebnisse:
Guid a = new Guid(„12345678-5555-5555-5555-555555555555“);
user.UserId = a;
token.CallerId = a;

Hallo,

ich habe leider keinerlei erfarungen mit MS-CRM!

Ich könnte mich zwar einarbeiten, doch leider habe ich dafür momentan keine Zeit, da ich Drei sehr große projekte programmiere!

Sorry!

Ich hoffe das Dir jemand anderes bei deinem Problem helfen kann!

Ich wünsche viel erfolg und eine schnelle Lösung!

Hallo
Also ich kenne CRM nicht. Aber ich sehe ein (mögliches) generelles Problem. Wenn du dich auf dem SQL-Server mit Windows Authentication anmelden willst, dann muss IIS und SQL-Server auf dem gleichen Rechner laufen. Da dies meist nicht der Fall ist, verwendet man üblicherweise SQL Logins und gibt den User via Parameter weiter. Oder Kerberos aufsetzen.
Viel Erfolg!

Servus!
Stimmt die URL fürs SOAP?
Würde ich mal Vergleichen und Prüfen.

Grüße
Matze

Url stimmt. Problem scheint zu sein, dass er den user nicht überschreibt, sondern immer mit dem aus dem application pool sich versucht auf die DB zu verbinden.

ja, das ist sehr gut möglich - dort drin vergisst er nicht so schnell, was auch durchaus positiv ist.

aber sobald du das objekt neu erzeugst muss er das nehmen.

was sagt der debugger?

Debuggen auf dem Server geht leider nicht. Weißt du wie man die Impersonation mit CRM macht? Bin mit meinem Latein am Ende.

hi,
ne noch nie gemacht. aber evtl. hilft dir das weiter

http://msdn.microsoft.com/en-us/library/cc151052.aspx
http://support.microsoft.com/kb/306158

die ASP-applikation wird doch nciht auf dem server ausgeführt oder?
im zweifel, evtl. kalppts ja wenn du nen webservice schreibst und davon die schnittstellen nutzt? dann macht der server die „meiste“ arbeit.

grüße