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.




Solutions nicht global sondern für eine bestimmte Webanwendung installieren

Unbeantwortet Dieser Beitrag hat 3 Antworten

Ohne Rang
11 Beiträge
Peter erstellt 11 März 2013 16:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

wir haben eine SharePoint 2010-Solution entwickelt, die Application Pages, Workflows und Timer jobs enthält. Die Solutions können in einer Farm nur global bereitgestellt werden. Das wird auch von Visual Studio automatisch voreingestellt.

Nun macht uns aber der Kunde die Vorgabe, dass die Solutions nicht global, sondern nur für bestimmte Webanwendungen bereitgestellt werden dürfen. Er begründet das damit, dass beim globalen Bereitstellen einer Solutions alle Application Pools des IIS neugestartet werden und dadurch der Server kurz offline ist und alle Benutzer-Sessions verloren gehen.

Stimmt das wirklich, das bei einem Application Pool-Recycling alle Sessions verloren gehen?

Wir haben inzwischen herausgefunden, dass man die Solutions nur für eine bestimmte Webanwendung bereitstellen kann. Allerdings muss man, dann den eigenen Assemblies (die im bin-Ordner der Webanwendung liegen) per web.config-Änderung die CAS-Berechtigungen hochstufen, sonst erhält man bei Ausführung von Custom Code eine SecurityException.

Nun haben wir folgendes Problem: Workflows und Timer jobs werden nicht vom IIS-Worker-Prozess w3wp.exe ausgeführt, sondern werden vom SharePoint Timer Service (OWSTimer.exe) verwaltet. Diese hat eine eigene Konfigurationsdatei. Darum können wir nicht die web.config der Webanwendung zur CAS-Berechtigungseinstellung verwenden. Der Kunde erlaubt uns allerdings nicht diese globale Konfigurationsdatei der OWSTimer.exe zu ändern.

Gibt es eine andere Lösung für SharePoint 2010, eigene Assemblies außerhalb des GAC bereitzustellen mit ausreichenden CAS-Berechtigungen? Wir dürfen leider nicht die OWSTimer.exe.config für unsere Workflows und Timer jobs anpassen.

Ich würde mich freuen, wenn mir jemand bei diesem kniffligen Problem helfen kann.

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 März 2013 16:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Euer Kunde ist offenbar etwas übereifrig. Ein selbstentwickelter Timerjob kann nur funktionieren, wenn die Assembly im GAC liegt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
11 Beiträge
Peter Als Antwort am 12 März 2013 08:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi Fandrich,

Danke für die hilfreiche Aussage. Ich habe nun auch auf MSDN einen Artikel gefunden, in dem steht:

"Bin/CAS solutions are more limited. Scope is restricted to the target Web application, and functionality is constrained by the code access security policies that are applied to the Web application. Bin/CAS solutions are also unsuitable for the deployment of timer jobs, event receivers, service applications, and workflows. These components require assemblies to be deployed to the global assembly cache, as explained earlier in this topic."

Quelle: http://msdn.microsoft.com/en-us/library/ff798425.aspx (Abschnitt: What can I Do with Farm Solutions?)

Das bestätigt noch einmal die Aussage, dass Timer jobs, Workflows und Event receivers nur im GAC deployt werden können.

Jetzt hätte ich doch noch eine kleine Frage: Wenn ich eine Solution global (Assemblies im GAC) bereitstelle, die Workflows enthält, wird dadurch trotzdem der App pool neugestartet, obwohl die Workflows von OWSTimer.exe ausgeführt werden?

Danke und Grüße

Peter

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 März 2013 08:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Peter"]Wenn ich eine Solution global (Assemblies im GAC) bereitstelle, die Workflows enthält, wird dadurch trotzdem der App pool neugestartet, obwohl die Workflows von OWSTimer.exe ausgeführt werden?[/quote]

Ja. Eine Solution enthält i.d.R. ja auch Dinge, die im Kontext einer Web App laufen. Z.B. gehört zu einem Workflow mindestens ein Assoziierungsformular.

Viele Grüße
Andi
af @ evocom de
Blog