Jul
27
2010
Problem:
Alle Workflows (Out of the Box und Custom mit SharePoint Designer) werden direkt nach dem Start mit einem Fehler abgebrochen.
Ursache:
Wird im Eventlog die Option “Workflow Infrastructure” aktiviert. Wird beim Start folgendes Protokolliert:
Windows SharePoint Services Workflow Infrastructure 72fs
Unexpected RunWorkflow: System.ArgumentException: Value does not fall within the expected range. at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties..ctor(SPWorkflow workflow, Int32 runAsUserId, String associationData, String initiationData) at Microsoft.SharePoint.Workflow.SPWinOEWSSService.MakeActivation(SPWorkflow workflow, SPWorkflowEvent e) at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(Guid trackingId, SPWorkflowHostService host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut) at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow originalWorkflow, SPWorkflow workflow, Collection`1 events, SPRunWorkflowOptions runOptions)
Windows SharePoint Services Workflow Infrastructure 98d7
Unexpected System.ArgumentException: Value does not fall within the expected range. at Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties..ctor(SPWorkflow workflow, Int32 runAsUserId, String associationData, String initiationData) at Microsoft.SharePoint.Workflow.SPWinOEWSSService.MakeActivation(SPWorkflow workflow, SPWorkflowEvent e) at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(Guid trackingId, SPWorkflowHostService host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut) at Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflowElev(SPWorkflow originalWorkflow, SPWorkflow workflow, Collection`1 events, SPRunWorkflowOptions runOptions)
Lösung:
Installieren Sie folgende Updates:
Jul
15
2010
Problem:
Inhaltsdatenbanken im SharePoint wachsen in kurzer Zeit sehr schnell an (.mdf und .log Files). Dies obwohl das Backup auf simple gestellt wurde.
Ursache:
Durch grosse Änderungen an Listen (häufig verursacht durch “Custom Timer Jobs) wird die Inhaltsdatenbank stehts vergrössert und leider nicht automatisch wieder verkleinert.
Unter folgendem Link ist dieser Effekt noch detailierter beschrieben:
http://blogs.technet.com/b/damodar/archive/2009/03/12/why-a-content-database-grows-abnormally.aspx
Lösung:
Folgt noch…
Jun
15
2010
Problem:
Im SharePoint Event-Log wird mehrmals pro Minute folgender Event aufgeführt:
Event Type: Error
Event Source: Windows SharePoint Services 3
Event Category: Normal
Event ID: 27745
Date…
Ursache:
Die Login-Informationen des Service-Accounts (Zugriffskonte auf die SQL Datenbank) haben sich geändert.
Lösung:
Öffnen Sie die Consle und geben Sie folgendes ein:
- stsadm -o updatefarmcredentials -userlogin <domäne\benutzername> – password <Kennwort>
- iisreset /noforce
May
25
2010
Wie bereits behandlet, lohnt es sich mit dem Batch-Kommando zu arbeiten, wenn eine grosse Anzahl von Listenelemente gelöscht werden soll. Weiter möchte ich anfügen, dass es ebenfalls von Vorteil ist, während der Prozedur den Recycle Bin zu deaktivieren. Dies sparrt enorm viel Zeit.
web.Site.WebApplication.RecycleBinEnabled = flase;
// Task
web.Site.WebApplication.RecycleBinEnabled = true;
Apr
21
2010
Problem:
Beim Öffnen oder Herunterladen einer *.ai Datei im SharePoint wird diese als *.pdf erkannt und so mit dem Arcobat Reader anstatt mit dem Adobe Illustrator geöffnet.
Ursache:
Im IIS ist der Dateityp .ai nicht richtig registriert.
Lösung:
Änderen Sie den .ai Eintrag im IIS unter den MIME types:
- Öffnen Sie den IIS
- Klicken Sie mit der rechten Maustaste auf den Servername
- Wählen Sie “Properties”
- Klicken Sie auf MIME Types
- Suchen Sie die Extension .ai und ändern Sie den MIME type auf image/ai ab.
- Starten Sie den IIS neu und voilà
Mar
29
2010
Problem:
Timer Jobs können von der Zentraladministration aus nur deaktiviert werden, jedoch nicht gelöscht. So kann sich, meist in der Entwicklung, eine Menge Schrott ansammeln.
Lösung:
Verwenden Sie den stsadm um einen TimerJob zu löschen.
1: stsadm -o deleteconfigurationobject -id <ObjectID>
Die ObjectID representiert die ID des zu löschenden Jobs. Diese kann in der Zentraladministration unter Timer Job Definitions gefunden werden. Einfach mit der Maus über den gewünschte Job fahren und ID aus dem Link entnehmen.
Mar
24
2010
Problem:
Möchte man in einer Bibliothek mehrere Dateien auf einmal einchecken, so ist dies beim Office Server direkt integriert. Der Administrator hat die Möglichkeit in den Site Settings > Content & Structure mehrere Dateien auszuwählen und miteinander einzuchecken, löschen usw.. Leider fehlt dieser Menüpunkt in den SharePoint Services, so dass via Browser nur einzelne Dateien eingecheckt werden können.
Lösung:
Um nun trotzdem effizient mehrere Dateien einzuchecken kann der SharePoint Designer verwendet werden. Markieren Sie im TreeView, auf der linken Seite, die gewünschten Dateien, Klicken Sie mit der rechten Maustaste und wählen Sie im Menü Ein- oder Auschecken.

Mar
22
2010
Problem:
Wird in einem Webpart sehr zeitintensiver Code ausgeführt, kann dies zu einem TimeOut führen.
Lösung:
Mit der Klasse “LongRunningOperationJob” (Microsoft.SharePoint.Publishing) können zeitintensive Operationen durchgeführt werden. Dies wird wie folgt angewendet.
public class IntensivJobClass : LongRunningOperationJob
{
…
Überschreiben Sie in der Klasse “IntensivJobClass” die Methode DoWork().
public override void DoWork()
{
this.StatusDescription = “What going on
”;
this.UpdateStatus();
this.OperationsPerformed++;
IntensivJob();
}
private void IntensivJob()
{ … }
Nun können Sie diesen Job aus dem Webpart per Event starten
IntensivJobClass intensivJob = new IntensivJobClass();
intensivJob.Title = “Lange Operation”;
intensivJob.WaitMessage = “Bitte warten Sie…”;
intensivJob.RedirectWhenFinished = true;
intensivJob.UserCanCancel = true;
intensivJob.TotalOperationsToBePerformed = 1;
intensivJob.GearsImageUrl = “~/layouts/images/gears_an.gif”;
intensivJob.MillisecondToWaitForFinish = 500;
intensivJob.StatusDescription = “…”;
intensivJob.Start(SPContext.Current.Web);
HttpContext.Current.Response.Redirect(job.StatusPage.Url);
Mar
17
2010
Problem:
Beim Erstellen eines ListItems nach folgender Methode wird beim Update() Befehl eine Sicherheits-Exception ausgelöst: Exception : “The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.”
SPSite site = new SPSite("URL");
site.AllowUnsafeUpdates = true;
SPWeb web = site.OpenWeb();
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["Name"];
SPListItem item = list.Items.Add();
item["Titel"] = "Test";
item.Update();
Lösung:
Dieses Problem tritt in der Regel auf, wenn eine grosse Anzahl Elemente in einer Liste erstellt werden soll. Mittels using (die Gültigkeit des Objekts auf einen Bereich zu beschränken) kann das Problem abgefangen werden.
using(SPSite site = new SPSite("URL"))
{
site.AllowUnsafeUpdates = true;
using(SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["Name"];
SPListItem item = list.Items.Add();
item["Titel"] = "Test";
item.Update();
}
}
Mar
02
2010
Problem:
Sie möchten auf einen SharePoint-Webservice zugreifen. Die SharePoint Site wurde jedoch mit FBA (Forms Based Authentication) realisiert und somit erhalten Sie stets Security-Exceptions.
Lösung:
Authentifizieren Sie sich zuerst mittels dem Webservice "/_vti_bin/Authentication.asmx" und erstellen sie ein Cockie welches Sie beim Zugriff auf den gewünschten Webservice einsetzen.
Quellen:
Unter folgendem Link finden Sie weitere Erläuterungen sowie ein Beispiel Programm.
1: // Web Referencen einbinden
2: using ... .WSAuthentication;
3: using ... .WSLists;
4:
5:
6: // Authenticate
7: Authentication spAuthentication = new Authentication();
8: spAuthentication.Url = ".../_vti_bin/Authentication.asmx";
9: spAuthentication.CookieContainer = new CookieContainer();
10: LoginResult loginResult = spAuthentication.Login("user", "password");
11: Cookie cookie = new Cookie();
12:
13:
14: // Webservice laden
15: Lists wsLists = new Lists();
16: wsLists.Url = ".../_vti_bin/lists.asmx";
17:
18: // Login
19: CookieCollection cookies = spAuthentication.CookieContainer.GetCookies(new Uri(spAuthentication.Url));
20: cookie = cookies[loginResult.CookieName];
21: wsLists.CookieContainer = new CookieContainer();
22: wsLists.CookieContainer.Add(cookie);
23:
24:
25: // nun können Sie auf den Webservice zugreifen