Zum Hauptinhalt wechseln

OBA Blog

  

OBA Blog > Kategorien
SharePoint 2010 Finale Version

Microsoft hat den Launch Termin für SharePoint 2010 bekanntgegeben. Es ist der 12. Mai 2010. RTM soll im April erfolgen.

http://blogs.msdn.com/sharepoint/archive/2010/03/05/sharepoint-2010-office-2010-launch.aspx

Problem mit UserProfilemanager

Heute morgen ist uns auf einem Testsystem ein interessanter Fehler aufgefallen. Beim Zugriff über ein Portal über 2 verschiedene Url's kommt bei der einen (internen) Url das Portal bei der anderen (externen mit SSL) kommt die WebPart Fehlerseite.

Die erweiterte Fehlermeldung sah so aus:

Server Error in '/' Application.

Value cannot be null.
Parameter name: serverContext

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: serverContext

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

 

[ArgumentNullException: Value cannot be null.

Parameter name: serverContext]

Microsoft.Office.Server.UserProfiles.UserProfileManager..ctor(ServerContext serverContext, Boolean IgnoreUserPrivacy, Boolean backwardCompatible) +542

Microsoft.Office.Server.UserProfiles.UserProfileManager..ctor() +101

DE.Mms.PROJECT.Profile.WebPartCode.Service.<>c__DisplayClass6.<GetAllUsers>b__1() +217

Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) +73

Microsoft.SharePoint.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2() +592

Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) +319

Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) +571

Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) +135

DE.Mms.PROJECT.Profile.WebPartCode.Service.UserService.GetAllUsers() +560

 

Nach einer kurzen Suche fand ich die interessante Lösung des Problems. Die externe Url war nicht im AAM (Alternate Access Mapping) in der Zentraladministration eingetragen. Der Aufruf erfolgt zwar über SSL aber ein vorgeschalteter Proxy sendet die Abfrage mit http weiter. Sehr interessanter Fehler…

Fazit: allen WebPart Code so kapseln, dass man auch die Fehler von anderen (in dem Fall SharePoint intern) abfängt!

SharePoint UserGroup Meeting Juni 2009

Gestern Abend fand wieder unser UserGroup Meeting statt.

Steffen Krause (http://blogs.technet.com/steffenk) hat uns einige Einblicke in die Konfiguration von SQL Server gegeben, besonders in Verbindung mit SharePoint.

Hier findet Ihr die Präsentation:

Dann bis zum nächsten Mal.

Sascha

SharePoint UserGroup Dresden: Treffen am 28. April 2009

Bei diesem Treffen haben wir 3 spannende Themen für jede Zielgruppe vom Entwickler bis hin zum Projektleiter. Diesmal ist die rege Unterstützung der Teilnehmer gefragt.

Hier die Agenda:

-          "Erfahrungsbericht: Enterprise Content & Knowledge Management mit SharePoint"
Die Saxonia berichtet über Strukturen, Prozesse und Entwicklungen. (20-30 Min.)

-          Silverlight 2.0 im Unternehmenseinsatz
Am Beispiel der Integration eines Prozess-Editors in SharePoint als Ersatz für lokale Visio-Installationen stellt Christian Heindel von Communardo Silverlight 2.0 für SharePoint vor und gibt einen Ausblick auf Silverlight 3.0

-          OpenSpace: SharePoint Suche - Funktionen und Möglichkeiten
In dieser Diskussionsrunde wollen wir uns über Erfahrungen, Möglichkeiten und Grenzen der SharePoint Suche unterhalten. Was kann die Suche? Was geht nicht? Welche Lösungen habt ihr schon umgesetzt? Habt ihr bereits eine interessante Lösung mit Hilfe der Suche realisiert?

In Erwartung eines spannenden Abends bei Saxonia Systems.

Gruß,
Sascha Henning

PS: Hier noch mal der Link zum Event: https://www.xing.com/events/325756

SharePoint Speicherplatz berechnen

Bei meiner Arbeit werde ich immer wieder damit konfrontiert, Aussagen über den benötigten Speicherplatz einer SharePoint Installation zu treffen. Vor einiger Zeit habe ich mir die Mühe gemacht, ein paar Formeln zusammenzutragen.

Unten der Link auf die Excel Datei - einfach oben links das tatsächlich zu erwartende Datenvolumen eintragen und dann die andern Werte ablesen.

Hier noch ein Screenshot:

Link zur Datei (Excel 2007): SharePoint_DiskSpace_Kalkulationshilfe.xlsx

Sollte was fehlen - meldet euch...

Hoffe, es hilft etwas,
Sascha

SharePoint UserGroup Dresden Treffen am 19.02.2009

Hier die Bilder vom letzten Treffen (leider etwas unscharf - wird beim nächsten Mal besser):

Es wurde reger Gedankenaustausch um das Buffet geführt.

 

Highlight war aber der Surface Device (laut Microsoft ist es kein Tisch!!!):

Dann bis zum nächsten Mal im April. Die Planungen laufen bald an.

Sascha

Generieren von Word-Dokumente mit Aspose

Zur Generierung von Word-Dokumenten kann die Funktionsbibliothekt von Aspose (Aspose.dll; http://aspose.com/) genutzt werden. Diese unterstützt u.A. auch das Einbinden von Bildern.

 

Beispiel:

Ziel ist es, ein Bild aus einer Sharepoint-Dokumentenbibliothek in ein mit Aspose generiertes Word-Dokument einzubinden.

 

Stolpersteine:

  • Wenn mit Tabellen gearbeitet wird, sollte (ähnlich der Html-Progammierung mit Tabellen) eine saubere Tabellenstruktur eingehalten werden. Sonst passiert es, dass das Bild irgendwo erscheint – nur nicht dort, wo man es erwartet.
  • Berechtigungen des Sharepoints berücksichtigen. Im Quellcodebeispiel wird das Bild mit Adminrechten gelesen. (Sonst nicht über einen 401-Fehler wundern.)
  • Reihenfolge beim Schließen des Streams beachten. Stream erst schließen, wenn die Image-Instanz ins Word-Dokument geschrieben wurde.
  • Nicht auf alle Properties der SPFile-Instanz verlassen. Das Property „Exists“ hat bei mir bspw. immer false zurückgegeben, auch wenn das Bild vorhanden war.
  • Um sicherzustellen, dass in der SPFile-Instanz wirklich Daten hinterlegt sind, einfach einen weiteren Try-Catch-Block drumherum legen und ggf. auswerten.

 

Quellcode:

                Uri imageUri = new Uri(“http://mySharepoint.com/mySite/myDocumentLibrary/example.jpg”);

    SPSite s = null;

                SPWeb w = null;

                Guid id;

                SPFile f = null;

                Stream str = null;

                Image img = null;               

                try

                {

                     //Bild aus Sharepoint holen

                    s = new SPSite(imageUri.ToString());

                    id = s.ID;

                    s.Close();

                    SPSecurity.RunWithElevatedPrivileges(delegate()

                    {

                        s = new SPSite(id);

                        w = s.OpenWeb();

                        f = w.GetFile(imageUri.ToString());

                        if (f == null)

                        {

                            img = null;

                        }

                        else

                        {

                            try

                            {

                                str = f.OpenBinaryStream();

                                img = System.Drawing.Image.FromStream(str);

                            }

                            catch (Exception ex)

                            {

                                img = null;

                            }

                        }

                    });

 

                    //now insert the pic in the word-document

                    Document doc = new Document();

                    doc.RemoveAllChildren();

                    DocumentBuilder builder = new DocumentBuilder(doc);

                   

                    builder.RowFormat.ClearCellPadding();

                    builder.CellFormat.ClearFormatting();

                    if (img == null)

                    {

                        builder.RowFormat.Height = imgHeight;

                       builder.RowFormat.HeightRule = HeightRule.Exactly;

                       builder.Font.Name = "Arial";

                       builder.Font.Size = 10;

                       builder.Font.Color = System.Drawing.Color.Black;

                       builder.Writeln("Es ist kein Bild vorhanden");                   

                    }

                    else

                    {

                        builder.RowFormat.Height = img.Height;

                        builder.RowFormat.HeightRule = HeightRule.Exactly;

                        builder.InsertImage(img, img.Width, img.Height);

                        img = null;

                    }

                    builder.EndRow();

                }

                catch (Exception ex)

                {

                    throw new Exception("Es ist ein unerwarteter Fehler bei der Verarbeitung "+

                        "des Fotos '"+imageUri.ToString()+"' aufgetreten!", ex);

                }

                finally

                {

                    if (str != null)

                        str.Close();

                    if (f != null)

                        f = null;

                    if (w != null)

                        w.Close();

                    if (s != null)

                        s.Close();

                }

Migrateuser auf MOSS/WSSv3

Viele haben mit diesem Befehl schon so ihre wahre Freude gehabt.

Die Suche in einer oder mehrerer SiteCollections geht nicht. "Error in the Site Data Web Service (Value does not fall in the expected range)" heißt es da. Das heißt nichts anderes, als das sich der Indexer an den fehlerhaften Datenbankeinträgen in der UserInfo Tabelle zu Deutsch die Zähne ausbeißt. Außerdem können Nutzer nicht migriert werden, wenn sie sich sowohl mit ihrem alten als auch dem neuen Account am SharePoint angemeldet haben.

Die gute Nachricht ist: es gibt einen Hotfix. Die Schlechte: der geht (noch) nicht für's SP1.

Das heißt, wer jetzt mit dem Hotfix Rollup das Problem umgangen hat, hat es nach dem Aufspielen des SP1 wieder. Denn der Hotfix behebt nicht die Ursache (um 4 Byte verkürzt geschriebene SID), sondern nur die Wirkung. Die "kaputten" Werte bleiben in der UserInfo Tabelle der ContentDB.

Da heißt es abwarten – oder eben selbst Hand an die UserInfo zu legen (ist von Microsoft nicht supported ;-) )…

Der Link zum Download für WSS hier (KB Eintrag kb934525).
Für MOSS der KB Eintrag hier (KB Eintrag kb937832).