Fehlermeldung: request for security token konnte nicht erfüllt werden, da die Authentifizierung fehlgeschlagen

Ich versuche, Zugriff auf einen WCF-Dienst (MS CRM 2011) und immer den oben genannten Fehler. Wenn ich meine Beispiel-Programm aus der VS2010-debugger mit entweder Cassini oder IIS Express funktioniert es Super. Keine Authentifizierung Fehler.

Allerdings, wenn ich veröffentlichen Sie die site auf meinem lokalen IIS 7.5 (unter Windows 7 64-bit), bekomme ich die Fehlermeldung auf die Zeile, schnappt sich den CRM-Benutzer-id (WhoAmIResponse).

Ich öffnete Fiddler vergleichen Sie die Anforderungen zwischen der Ausführung im debugger und läuft unter IIS. Auf der Website unter IIS ausgeführt wird die Anforderung noch nie begegnet, also muss er scheitern, bevor man so weit.

Der site veröffentlicht, um IIS hat seine web.config-set für ...

    <authentication mode="Windows">
    </authentication>
    <identity impersonate="true"/>

Die Website läuft unter dem vorinstallierten ASP.NET v4.0 app-pool, Integrated pipeline mode, Konto ApplicationPoolIdentity.

Hier ist mein code...

public class DemoController : Controller
{
    public ActionResult Index()
    {
        ClientCredentials credentials = new ClientCredentials();
        credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

        var _serviceProxy = new OrganizationServiceProxy(new Uri("http://svr-rex2011-dev/TimeEntry/XRMServices/2011/Organization.svc"),
                                                            null,
                                                            credentials,
                                                            null);

        //This statement is required to enable early-bound type support.
        _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

        IOrganizationService service = (IOrganizationService)_serviceProxy;

        //Display information about the logged on user.
        Guid userid = ((WhoAmIResponse)service.Execute(new WhoAmIRequest())).UserId;
        SystemUser systemUser = (SystemUser)service.Retrieve("systemuser", userid,
            new ColumnSet(new string[] { "firstname", "lastname" }));

        //Retrieve the version of Microsoft Dynamics CRM.
        RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
        RetrieveVersionResponse versionResponse =
            (RetrieveVersionResponse)service.Execute(versionRequest);

        ViewBag.FirstName = systemUser.FirstName;
        ViewBag.LastName = systemUser.LastName;
        ViewBag.Version = versionResponse.Version;

        return View();
    }

}

Irgendwelche Ideen? Sehr geschätzt!!!

InformationsquelleAutor John Livermore | 2011-05-12

Schreibe einen Kommentar