Frage

Hier ist das Szenario:

  • Benutzerdefinierte WCF -Dienst, der in SharePoint 2010 bereitgestellt wird
  • Die Site verwendet Angabenbasis -Authentifizierung (FBA, NTLM)
  • .SVC wird im Bienenstock in ISAPI eingesetzt
  • Der Dienst wird über die benutzerdefinierte Dienstfabrik konfiguriert
  • Der Dienst wird mit Ajax aus dem Browser aufgerufen
  • Ich kann den Service gut erreichen. Der Service ist abgelaufen und akzeptiert Anfragen

Hier ist das Problem: spcontext.current ist stets Null. Ich weiß sollte Die SPContext.current ist in benutzerdefinierten WCF -Diensten null Bei Verwendung von Ansprüchenbasis -Authentifizierung? Oder habe ich irgendwo einen Schritt verpasst?

Ich bin nie auf dieses Problem mit der klassischen Modus -Authentifizierung gestoßen, daher frage ich mich, ob dies nur etwas Besonderes für WCF+SharePoint+-Anleitungen ist und ob es mögliche Problemumgehungen gibt.

Danke für irgendeine Einsicht!

- Chuck

War es hilfreich?

Lösung

Arrrrrgh! Schließlich fand es heraus, nachdem er für einen guten Tag damit gespielt hatte.

Ich möchte dies hier hier lassen, falls jemand anderes auf dasselbe Problem stößt.

Wenn ich den JavaScript -Endpunkt registriere, verwende ich die vollständige URL des Dienstes.

Also, wenn die Wurzel meiner Website bei:

http://mydomain.com/sites/site1

Ich registriere es bei:

http://mydomain.com/sites/site1/_vti_bin/myservicedir/myservice.svc/js

Das ist alles gut und in Ordnung. Wenn die Anfrage zum Abrufen der JavaScript -Stubs gestellt wird, kann ich in Fiddler sehen, dass die Anfrage geht:

/sites/site1/_vti_bin/myservicedir/myservice.svc/js

Ich bemerkte jedoch erst jetzt (schließlich, nachdem ich es stundenlang anstarrte .........

/_vti_bin/myservicedir/myservice.svc/MethodName

So mein SPContext ist immer null Da in der URL kein Site -Kontext angegeben ist.

Als ich mir die JavaScript -Stubs von SharePoint betrachtete, konnte ich sehen, dass der Anruf an set_path() benutzte die gehackte URL. Einfach genug, um zu beheben, indem Sie anrufen set_path() Wieder mit dem richtigen Weg.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top