SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Wie kann man Webanwendungsübergreifend programmieren

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
30 Beiträge
Ruediger erstellt 13 Sept. 2012 12:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Zusammen,

ich fange ja grade an mich mit der Programmierung für SP2010 zu befassen und finde zwar viele Beispiele zu Eventreceivern etc. aber nichts um Webanwendungsübergreifend zu programmieren. Habt Ihr vielleicht nen Tip oder nützlichen Link wie ich es schaffe Daten in eine andere Webanwendung zu schreiben.

Beispiel:
In der Liste in Webanwendung A wird ein Element erstellt. Diese soll dann in eine Liste die sich auf der Webanwendung B befindet kopiert werden

Vielen Dank für eure Infos, Ruediger

Alle Antworten

Ohne Rang
30 Beiträge
Ruediger Als Antwort am 13 Sept. 2012 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ps: Ich habs  so versucht:

using (SPSite site = new SPSite(http://sp_test)){

 using (SPWeb web = site.OpenWeb("neueSeite1")){

SPList List = web.Lists["TicketService"];

SPListItem  item = list.Items.Add();

item[

 

 

 

"Title"] = "Titel 1";

item[

 

"Kommentar"] = "Kommentar 1";

}}

 

Aber leider endet das immer in einer TargetInvoationException...

Dies nur zu Info...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Sept. 2012 16:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Solange beide WebApps in einer SharePoint-Farm sind und die Rechte passen, geht das mit Deinem Code. Du brauchst aber noch ein web.AllowUnsafeUpdates=true

Und noch ein Tip: verwende zum Neuanlegen von Listenelementen list.AddItem(), das ist deutlich performanter. list.Items ruft bei jedem Zugriff alle Elemente aus der Datenbank ab.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
30 Beiträge
Ruediger Als Antwort am 14 Sept. 2012 13:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Erstmal vielen Dank!! Vor allem für das unsafeUpdates und das AddItem!

Leider will das bei mir trotzdem noch nicht so richtig laufen...

Da ich immer noch Probleme habe mich im Objektmodell zurecht zu finden, frag ich einfach mal ob ich das Richtig verstehe. Ich hab ne Neue Webanwendung erstellt die http://sp_test:4711 ist. Dann hab folgende Websitesammlung in der Zentraladministration erstellt: /websites/Kunde und dann hab ich dort nen neue Webseite erstellt die test heißt und eine Liste namens Ticket enthält. Der Komplette link ist dann:

http://sp_test:4711/websites/Kunde/test/

Jetzt ist doch meien SPSite http://sp_test:4711/websites/Kunde

und mein SPWeb site.openweb("test")

oder versteh ich das falsch??

Nochmal danke für die Info und ein schönes Wochenende, Ruediger

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Sept. 2012 14:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du solltest immer auch eine Websitesammlung im Root anlegen, sonst kann es Probleme geben. Bei Dir also unter http://sp_test:4711.

Und im Konstruktor von SPSite gibst Du am einfachsten gleich den Pfad zum Subweb an, also new SPSite(http://sp_test:4711/websites/kunde/test). An das Subweb kommst Du dann ganz einfach über site.OpenWeb(), also ohne Parameter. Damit mußt Du Dir keine Gedanken um relative oder absolute Pfade machen und ob die jetzt mit einem / beginnen müssen oder nicht.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
30 Beiträge
Ruediger Als Antwort am 17 Sept. 2012 07:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nochmals vielen Dank für die Antwort! Leider will das bei mir einfach nicht klappen... Habe es auch schon mit

SPSecurity.RunWithElevatedPrivileges(delegate()) versucht, das hat das ganze aber nur verschlimmert, weil der Code dann gar nicht mehr ausgeführt wurde! Naja, ich weiß ja jetzt das es so klappen sollte und werde einfach weitersuchen! Vielen Dank fuer die nützlichen Tipps! Ruediger

Ohne Rang
30 Beiträge
Ruediger Als Antwort am 17 Sept. 2012 14:12
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Problem gelöst! Lag an mir... :-)

Zuerst hab ich einen Flüchtigkeitsfehler gemacht, in dem ich als Listentyp "Ankündigungen" gewählt habe, anstelle von "benutzerdefinierter Liste", dadurch wurde mein Eventreceiver schonmal gar nicht ausgeführt.

Der Eigentliche "Fehler" war aber,das ich eine Sandkastenlösung erstellt habe. Anscheinend muss man um übergreifend zu programmieren aber eine Farmlösung nehmen...

Zumindest läuft jetzt alles! Trotzdem nochmal vielen vielen Dank für die ganzen nützlichen Tipps!!

LG Ruediger