Wer - wie unsere Firma - konsequent auf Technologien setzt, die die Notwendigkeit zu reisen einschränkt, schaut auch immer nach Tipps, was man dabei besser machen kann.
Dabei habe ich bei silicon.de einen Artikel gefunden, der offensichtlich aus leidvoller Erfahrung entstanden ist.
In 12 Tipps für Webkonferenzen findet man vieles Altbewährtes, was nur zu oft in Vergessenheit gerät. Trotzdem gibt es aus meiner Sicht noch Wichtiges zu ergänzen:
Ich finde es besser, wenn man sich vor einer Web- oder Telefonkonferenz schon einmal vis-a-vis getroffen hat. Die "Chemie" stimmt dann einfach schneller und besser. Eine Videokonferenz kann da zwar einiges auffangen, aber leider ist auch heute noch immer nicht überall ausreichend Bandbreite und gute Technikqualität vorhanden.
Wer möchte, kann über die datafino GmbH BPOS (Business Productivity Online Suite) kennenlernen und buchen --> wir nutzen besonders gern Office Live Meeting, speziell auch für ad hoc-Konferenzen. Das Preis-Leistungsverhältnis ist in unseren Augen unschlagbar.
Jetzt ist es passiert. Ich habe es selbst noch nicht verifiziert, aber: der Bug ist zu wichtig, als das ich euch das vorenthalten möchte:
Es scheint so, dass unter SQL Server 2008 R2 Installationen existieren, in denen die Neu-Erstellung (Rebuild) der Systemdatenbanken nicht möglich ist.
Für alle die des Englischen mächtig genug sind, eine weitere Quelle (SQL Server MVP: Tibor Karaszi) dafür:
Dort findet ihr auch einen Link zur Wiederherstellung unter SQL Server 2008 (ohne R2)
Wenn ich das Prozedere einmal in deutscher Sprache posten soll, lasst es mich wissen.
Anmerkung: Ein Rebuild wird nur notwendig, wenn der SQL Server Dienst nicht mehr starten kann, weil Systemdatenbanken defekt sind. Bei der Behebung von Datenfehlern, wo der SQL Server Dienst dennoch startet, reicht in aller Regel ein Restore.
Eine Umgehungslösung für den Bug(?) habe ich auch für euch:
Nach der Installation und nach jedem (SQL Server-) Patch einmal den SQL Server Dienst herunterfahren und alle Datenbankdateien der Systemdatenbanken manuell (Datei kopieren) sichern.
Sollte ein Rebuild (vor allem der Datenbank "master") nötig werden, könntet ihr dann dieses Backup benutzen, um die Datenbank master (und alle anderen Systemdatenbanken) auf einen funktionalen Zustand zu bringen. Weitere Wiederherstellungen mit Hilfe des Restore-Befehls sind dann auch denkbar. Eine Lokalisierung kann wie schon in der vorherigen Version über Resource-Dateien im "{SharePointRoot}\Resources\" Ordner realisiert werden.
Im neuen Visual Studio 2010 fügt man dazu einfach einen Mapped Folder in die Solution ein und anschließend die entsprechenden Resource-Dateien.
Damit das ganze auch in der SharePoint Solution(*.wsp) mit eingepackt werden kann, muss die Build Action auf Content umgestellt werden. Dadurch landen die .resx Dateien in der SharePoint Solution und werden mit installiert.
Für detaillierte Informationen über das Einbinden ist der folgende Beitrag von John W Powell zu empfehlen:
Wenn man nun aber im Code selbst auf diese Resourcen zugreifen möchte, gibt es ein Problem. Da die Build Action auf Content gestellt ist, um vom Package-Automatismus erkannt zu werden, wird die Resource nicht in die DLL mit eingebunden und es kommt zu einer Fehlermeldung während der Benutzung der Controls o.ä.
Eine Quick & Dirty Lösung ist folgende:
Die .csproj Datei öffnen und folgendes XML(grün) in die ItemGroup der Resource-Dateien hinzufügen.
<ItemGroup>
<Content Include="Resources\MyResource.de-DE.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MyResource.de-DE.Designer.cs</LastGenOutput>
</Content>
<Content Include="Resources\MyResource.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MyResource.Designer.cs</LastGenOutput>
</Content>
<EmbeddedResource Include="Resources\MyResource.de-DE.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MyResource.de-DE.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Resources\MyResource.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MyResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
Die Änderung speichern und das Projekt in Visual Studio neu laden. Jetzt kann deployed werden. Die .resx Dateien landen wie geplant in der .wsp Datei und werden in die DLL eingebunden.
Eine andere Lösung wäre der Einsatz vom WSPBuilder für Sharepoint 2010.
Seit dem SQL Server 2008 SP1 gab es Probleme mit der Berichtsfunktion im TFS 2008 SP1 und beim Erstellen eines neuen Teamprojektes.
Dabei hat der TFS Wizard folgende Fehlermeldung ausgegeben:
---Anfang Ausnahmeeintrag--- Zeit: 2010-04-16 11:21:57Z Modul: Initializer Ereignisbeschreibung: TF30207: Fehler beim Initialisieren des Plug-Ins "Microsoft.ProjectCreationWizard.Reporting". Ausnahmetyp: Microsoft.TeamFoundation.Client.PcwException Ausnahmemeldung: TF30224: Fehler beim Abrufen von Projekten vom Berichtsserver. Überprüfen Sie, ob die SQL Server Reporting Services-Web- und -Windows-Dienste ausgeführt werden und ob Sie über ausreichende Berechtigungen zum Erstellen von Projekten verfügen. Stapelüberwachung: bei Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context) bei Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Initialize(ProjectCreationContext context) bei Microsoft.VisualStudio.TeamFoundation.EngineStarter.InitializePlugins(MsfTemplate template, PcwPluginCollection pluginCollection) -- Interne Ausnahme -- Ausnahmetyp: System.InvalidOperationException Ausnahmemeldung: Der vom Client gefundene Anforderungsinhaltstyp ist '', erwartet wurde 'text/xml'. Fehler: Leere Antwort auf Anforderung. Stapelüberwachung: bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) bei System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) bei Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.ListChildren(String Item, Boolean Recursive) bei Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.CheckForProjectFolder(PrivateData data, String projectName, ProjectCreationContext context) -- Ende interne Ausnahme -- ---Ende Ausnahmeeintrag ---
Ich schaute, wie es auch viele Blogs rieten, ob die SQL Reporting Services richtig gestartet waren und ob die Logs etwas sagten. Leider war an dieser Stelle alles korrekt.
Der wichtigste Hinweis war, dass der Content-Type des Requests nicht text/html ist. Das bedeutet, dass die Kommunikation vom lokalen TFS Explorer(Client) zum SQL Reporting Services Webservice nicht stimmt.
In Emma's TFS Blog fand ich schließlich die Lösung. Durch das SP1 vom SQL Server 2008 wurde ein neuer Webservice mitgeliefert ("ReportService2005.asmx"). Dem TFS war aber nur der Webservice "ReportService.asmx" bekannt.
Daher einfach den Schritten von Emma's Blog folgen und das Problem ist gelöst.
Jetzt laufen die Berichte wieder.
Allerdings nicht die Teamprojekterstellung ;)
Dazu muss man erst das SP1 zum Visual Studio Team System über das existierende SP1 installieren.
Danach kann man wieder ganz normal die Teamprojekte erstellen.
Hier noch schnell der Link zum VS Team Suite SP1:
Ich hoffe, dass ich mit diesem Eintrag den Lesern ein paar Stunden Try and Error ersparen konnte :) Wie ich soeben erfahren habe, wird der SQL Server 2008 R2 auf der europäischen PASS-Konferenz freigegeben! Sehen wir uns dort?
Nun waren die letzten beiden Wochen doch so angefüllt, dass ich den Early Bird für die europäische Konferenz doch fast aus den Augen verloren habe: Am 1. Februar läuft er ab und ich möchte einladen, sich noch schnell anzumelden unter
Wünsche für ein erfolgreiches, arbeitsreiches aber dennoch Stille beinhaltendes Jahr möchte ich gern noch den Lesern dieses Blogs wünschen ... aber ...
es gibt auch noch was zum Thema SQL Server 2008 Release 2 zu sagen:
Er soll (wird?) am 6. Mai dieses Jahres der Öffentlichkeit zur Verfügung gestellt.
Wer dazu noch ein wenig Appetit bekommen möchte, hat dazu 3 Gelegenheiten:
- Das PASS-Camp (siehe letzter Blogeintrag)
- Unser regionaler PASS-Abend am 25. Januar bei uns
(Blogeintrag folgt)
- Die europäische PASS-Konferenz in Neuss.
(Blogeintrag folgt noch vor Ablauf des Early Bird ... ich will doch nicht alles Pulver auf einmal verschießen)
Und jetzt allen einen guten Winter mit knitterfreier Stoßstange am Auto - der Schnee ist ja jetzt wohl überall in DE da - oder?
Für diejenigen, die noch kein PASS-Mitglied sind - aufgepasst: Unser diesjähriges PASS-Camp findet vom 19.-21. Januar 2010 wieder im Gut Höhne (liegt in Mettmann bei Düsseldorf) statt.
Achtung! Der Early Bird Tarif läuft heute (am 02.12.2009) ab und ein Track ist schon fast ausgebucht!
Wir sehen uns - oder?
Nachdem die erste offizielle Beta von SharePoint 2010 erschienen ist, haben wir diese natürlich auch gleich installiert und getestet. Als Testumgebung haben wir Windows Server 2008 R2 mit SQL Server 2008 verwendet. Der Konfigurationsassistent hat sich dann allerdings geweigert weiter zu arbeiten. Er meinte, es müsste mindestens SP 1 für den SQL Server installiert sein. Das fand ich doch recht hilfreich.
Und wie das Leben so spielt, sind wir erst einmal auch auf die Nase gefallen, weil es ein paar sehr unschöne Probleme gab. Das erste zeigte sich unmittelbar bei der Installation. Der Installationsassistent brach ab, als er die Beispieldaten erstellen wollte und brachte die äußerst schlüssige Mitteilung: „Unrecognized attribute allow Insecure Transport“. Ein Blick in das Log und eine Suche in Google Bing hat dann ergeben, dass dies ein Bug in der WCF ist, welcher mit dem .NET 3.5 SP1 gekommen ist. Der Fix für diesen Bug ist hier verfügbar: Windows Server R2, Windows Server 2008 Nebenbei, die Beispieldaten wurden trotzdem erstellt.
Danach tauchte noch das Problem auf, dass die Profildaten aus dem Active Directory nicht gelesen werden konnten. Dies lag an den Rechten, die das Konto benötigt, welches die Daten lesen soll. Das Active Directory muss folgendermaßen eingerichtet werden. Ich gehe davon aus, dass für den Profilimport ein dediziertes Konto verwendet wird, als Beispiel soll Beispiel\sp_AdImport dienen.
1. Öffnen Active Directory Nutzer und Computer 2. Rechtsklick auf die Domain und „Objektverwaltung zuweisen…“ auswählen 3. Klick auf “Weiter” 4. Klick auf “Hinzufügen” 5. Das Konto auswählen für den Import wählen, z.B. Beispiel\sp_AdImport 6. Klick auf “Ok“ 7. Klick auf “Weiter” 8. „Benutzerdefinierte Tasks zum Zuweisen erstellen” auswählen 9. Klick auf “Weiter” 10. Auswählen von „Diesem Ordner, bestehenden Objekten in diesem Ordner…“ 11. Klick auf “Weiter” 12. Bei „Berechtigungen“ „Verzeichnisänderungen replizieren“ auswählen 13. Klick auf “Weiter” 14. Klick auf “Fertigstellen” Natürlich muss dann noch in SharePoint der Profilimport mit dem entsprechenden Konto konfiguriert werden.
Hier noch einmal die Produktschlüssel, welche zum installieren der Beta verwendet werden können. Ich hatte einige Probleme, diese auf der Downloadseite zu finden: PKXTJ-DCM9D-6MM3V-G86P8-MJ8CY BV7VC-RMR6B-26P6Y-BTQDG-DX2KQ Man kann es nicht oft genug sagen - der Lebenszyklus von unserem geliebten SQL Server 2000 läuft ab. Der kostenlosen Support sowieso, aber es wird auch immer schwerer, die Patches zu finden, wenn man - wie ich heute - auf einem System das Speicherleck von SQL 2000 SP4 hatte.
Vielleicht hilft das nicht nur mir weiter, da auf anderen Supportseiten - wie zum Beispiel der eigentlich benötigte Patch auf die Version 8.0.2040 oder sogar auf der Webseite zum Rollupfix 8.0.2187 - nicht die Downloads zur Verfügung stellen.
| Im Webbrowser anzeigen | /_layouts/images/ichtmxls.gif | /blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | Im Webbrowser anzeigen | /_layouts/images/ichtmxls.gif | /blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blog/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|