Archive for the 'SharePoint 2007' Category

Jul 27 2010

Workflow failed on start, EventID 72fs, 98d7

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:

Comments Off

Jul 15 2010

Inhaltsdatenbanken wachsen schnell an

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…

Comments Off

Jun 15 2010

Error Event ID 27745

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

Comments Off

May 25 2010

Schnelles löschen von Listenelementen

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;

Comments Off

Apr 21 2010

.ai (Adobe Illustrator) Dokumente werden im SharePoint als PDF geöffnet

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:

  1. Öffnen Sie den IIS
  2. Klicken Sie mit der rechten Maustaste auf den Servername
  3. Wählen Sie “Properties”
  4. Klicken Sie auf MIME Types
  5.  Suchen Sie die Extension .ai und ändern Sie den MIME type auf  image/ai ab.
  6. Starten Sie den IIS neu und voilà

Comments Off

Mar 29 2010

Timer Job Definition löschen

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.

Comments Off

Mar 24 2010

WSS 3.0 Mehrfach Checkin

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.

MultibleCheckIn

Comments Off

Mar 22 2010

Ausführen von zeitintensiven Operationen im SharePoint

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);

Comments Off

Mar 17 2010

ListItem.Update() Security Exception

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();
    }
}

Comments Off

Mar 02 2010

Mit einem Forms Based SharePoint Webservice verbinden

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

Comments Off

Next »