F12 –> Programm.exe has triggered a breakpoint …

Beim Debuggen meiner Anwendung bin ich heute auf ein seltsames Phänomen gestoßen:

Ich habe die F12-Taste als Tastenkürzel einer Funktion zugeordnet. Wenn ich diese Funktion debuggen möchte, in dem ich auf F12 drücke, erscheint folgende Meldung:

image 

Nachdem ich länger dazu gegoogelt hab, war die Lösung näher als ich dachte: Es liegt daran, dass WindowsNT (wozu auch WindowsXP & Co. zählen) eine Funktion aufrufen, die ähnlich zu DebugBreak() ist.

Wen’s zu sehr nervt (wie mich zum Beispiel) der kann das Problem mithilfe eines Registry-Keys aus der Welt schaffen:

 

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionAeDebugUserDebuggerHotKey

image

Mehr Informationen dazu findet man auf http://support.microsoft.com/kb/130667/en-us

Installation von Visual Studio 2008 Team Foundation Server unter Windows Server 2008

Am Dienstag (19.02.2008) und Mittwoch (20.02.2008) war ich zum Launch-Event von Visual Studio 2008 & Co. in Frankfurt. Dort habe ich mir bei der Vorträgen von Christian Binder und Marcus Alt Informationen zu Team Foundation Server geholt. Die Vorträge haben mich begeistert, da ich bisher ausschließlich mit Subversion und OnTime gearbeitet habe!

Als Mitbringsel von der Veranstaltung habe ich Visual Studio 2008 Standard, Windows Server 2008, sowie Visual Studio 2008 Team Foundation Server und MS SQL Server 2008 mit Heim genommen. Als ich die Verpackung aufmachte, musste ich feststellen, dass MS SQL Server 2008 noch nicht fertig ist und man mir stattdessen MS SQL Server 2005 und MS SQL Server 2008 CTP mitgegeben hat.

Voller Vorfreude habe ich dann auf meiner virtuellen Maschine Windows Server 2008 installiert. Das funktioniert echt prima! OK, dann TFS-CD rein ins Laufwerk und los geht’s! Danach folgte ich den Anweisungen des TFS Install Guide, den ich extra aus dem Internet aktualisiert herunter geladen hatte.

In dem Abschnitt „Prerequisite Installation“ stand „Before you deploy Team Foundation Server on a single server that is running Windows Server 2008, you must install IIS 7.0.“. Ok, also wieder in den Server Manager und folgende Rollen aktiviert:

  • ASP.NET
  • HTTP Redirections
  • IIS 6.0 Compatibility
  • Default options
  • Windows Authentication

Gut, danach steht in der Checklist, dass ich MS SQL Server 2005 auf Windows 2008 installieren soll. „Kein Problem“, dachte ich mir – TFS CD raus – SQL Server 2005-CD rein ins Laufwerk und Installation starten. Schon wieder eine Meldung:

Mit fehlte also zusätzlich noch Microsoft SQL Server 2005 Service Pack 2! Warum wird sowas dem Paket nicht beigelegt? Also bin ich den Hinweisen des Kompatibilitätsassistenten gefolgt und habe von der Microsoft Homepage das Service Pack 2 heruntergeladen (282MB) und nach meiner Installation von CD noch das Service Pack drauf gemacht.

Jetzt endlich sollte es losgehen! Wieder TFS-CD eingelegt und Setup gestartet. Plötzlich geht es nicht mehr weiter:

Ich habe keine Windows SharePoint Services Seite!! Woher bekomme ich diese nun? Ich erinnerte mich, dass beim Autostart der CD etwas von SharePoint Erweiterungen stand:

Also versuche ich es mal mit diesem Installer. Doch dieser bricht auch ab mit folgender Fehlermeldung:

Und abschließend stürzt das Setup dafür komplett ab:

Na toll! Woher bekomme ich nun Windows SharePoint Services 3.0? Warum ist das nicht mit auf der CD? Muss ich mir extra SharePoint anschaffen, nur um diesen TFS zu installieren? Das Handbuch half mir nicht wirklich weiter .. also musste google ran! Prompt wurde ich fündig: http://geekswithblogs.net/etiennetremblay/archive/2008/02/05/windows-2008–tfs-2008-it-works-but.aspx

Dort hatte jemand die gleichen Erfahrungen gemacht, wie ich. Allerdings bot er mir auch einen Link an, wo ich Windows SharePoint Services 3.0 (104MB) direkt von der Microsoft Homepage herunterladen konnte. Schon wenige Minuten später konnte die Installation los gehen:

[Update 01.03.2008]

Bei der Installation ist es wichtig, bei der „Erweiterten Installation“ den Servertyp von „Eigenständig“ auf „Web-Front-End Computer“ umzustellen:

Nach beendeter Installation kann die Konfiguration beginnen:

[Update 28.02.2008]

Ich führe nun die Kommandozeilen-Befehle aus, die im TFSInstall.chm stehen:

stsadm.exe -o extendvs -exclusivelyusentlm -url http://WSSServerName:Port -ownerlogin DomainUserName -owneremail „admin@localhost“ -sitetemplate sts -description „Description“

Das Ergebnis der Aktion sieht man hier:

„Die von Ihnen ausgewählte IIS-Website wird von SharePoint verwendet. Sie müssen einen anderen Port oder Hostnamen auswählen.“

Hä? Ich hab doch extra alles so befolgt, wie es in der Hilfe stand!?

Ich werde dann mal den Tipp von Peter (siehe Comments) befolgen und mein „Sharepoint 80“ löschen und dann die Kommandozeilen-Befehle neu ausführen. Leider hat das auch nix gebracht …

[Update 03.03.2008]

Nachdem mir Peter den entscheidenden Tipp gegeben hat, dass ich nicht denselben Port verwenden darf, wie meine Sharepoint-Administration (sorry 🙁 ), funktioniert alles wie es soll:

Nun schalte ich noch die Logins für den extra eingerichteten TFSSetup-User frei:

stsadm.exe -o siteowner -url http://tfs2k8:80 -secondarylogin TFSSetup

Für alle die es interessiert, wo dann die Seite mit stsadm.exe angelegt wird:

image

Dann kann’s ja mit der Installation losgehen …

[Update 04.03.2008]

Ich habe nun die Schritte bis zur Eingabe des Sharepoint Servers durchgeführt. Nun erhalte ich allerdings folgende Meldung:

image

Meine Einstellungen für Windows SharePoint Services sind die Folgenden:

image

Hier versuche ich es mal mit dem Tipp von Thomas und Peter (siehe Comments) und gebe statt http://TFS2k8:80/Sites –> http://TFS2k8:80/Websites an, da ich ebenfalls über die deutsche Version von Team Foundation Server verfüge:

image

Erst hat er rumgezickt .. aber es dann doch mit diesen Einstellungen übernommen!

Also ganz wichtig bei der deutschen Version von Team Foundation Server:

Statt http://SERVERNAME:PORT/Sites –> http://SERVERNAME:PORT/Websites

image

Und das ist die „Belohnung“ für die Mühen 🙂

image

Die Installation ist endlich abgeschlossen.

Zusammenfassung der wichtigsten Links soweit

Microsoft SQL Server 2005 Service Pack 2: http://www.microsoft.com/downloads/details.aspx?FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a&DisplayLang=en

Windows SharePoint Services 3.0 with Service Pack 1: http://www.microsoft.com/downloads/details.aspx?FamilyId=EF93E453-75F1-45DF-8C6F-4565E8549C2A&displaylang=en

Visual Studio 2008 Express Edition in deutscher Sprache

Seit kurzem stehen die Express Editions von Visual Studio 2008 auch in deutscher Sprache zur Verfügung. Wie auch schon die Express Editions von Visual Studio 2005, sind diese Versionen ebenfalls kostenlos. Der Einsatz für in kommerziellen Projekten ist natürlich auch erlaubt.

Visual Studio 2008 Express

Info: http://www.microsoft.com/germany/express/
Download: http://www.microsoft.com/germany/express/download/default.aspx

Passend dazu gibts natürlich auch die MSDN-Versionen als Hilfedateien zum Download, um nicht bei jeder Anfrage auf die Antwort vom Browser warten zu müssen. (Auch ganz praktisch, wenn man mal mit der Bahn unterwegs ist 😉 )

MSDN Download: http://www.microsoft.com/germany/express/download/msdn.aspx

Wer gern wissen möchte, was ihm zur „Vollversion“ – also Standard oder Professional Edition fehlt – der kann sich unter folgender Seite informieren:

2008er Versionen im Vergleich: http://msdn2.microsoft.com/en-us/vstudio/products/cc149003.aspx

Nützliches Tool für die WinDbg Erweiterung SOS: SOS Assist

Kürzlich bin ich auf das Tool SOS Assist aufmerksam geworden, die eine grafische Oberfläche zu WinDbg SOS anbietet:

SOS Assist

Leider wird das Tool (laut ChangeLog) seit 2006 nicht mehr gepflegt. Im praktischen Einsatz konnte es zwar durch die zahlreichen Infofenster punkten, doch in Punkto Stabilität sind noch einige Defizite zu spüren.

Bisher hatte ich mir immer mit ClrDump (http://www.debuginfo.com/tools/clrdump.html) beholfen, welches mir CrashDumps zur Analyse erstellte. Diese konnte ich dann im WinDbg laden und mittels SOS-Erweiterung analysieren.

Screenshots: http://old.thinktecture.com/SOSAssist/Screenshots.htm

Download: http://old.thinktecture.com/SOSAssist/default.html

Übrigens: Zum Thema CrashDump-Analyse zum Aufspüren von Sicherheitslücken hat auch das MSDN-Magazin einen Artikel veröffentlicht: http://msdn.microsoft.com/msdnmag/issues/07/11/ExploitingCrashes/default.aspx?loc=de

Sehr lesenswert!

Kostenloses Trainingsmaterial zu SharePoint 2007

Heute bin ich zufällig über das Blog von Neil Thompson gestoßen. Dort hat er unter dem Titel „Training Material Roadmap“ zahlreiche Trainingsmaterialien zur SharePoint 2007 als Word-Dateien verlinkt.

Zusätzlich gibt es noch Links zu Webcasts und MP3-Podcasts zu dem Thema. Alles frei herunterladbar 🙂

Hier der Link: http://blogs.msdn.com/neilth/pages/office-sharepoint-server-2007-training-material-roadmap.aspx

Ermitteln von Assembly-Dependencies – oder „Wie werde ich diese verd*** FileNotFound-Exception los?“

Ich ärgere mich momentan mit einem Projekt herum, welches ich nicht problemlos deployen kann. Ich verwende dazu Interop-Technologien aus C++/CLI.

Leider läßt sich das Programm nicht auf einem frisch installierten Zielrechner ausführen. Irgendeine Abhängigkeit muss es noch geben, die bei Installer nicht berücksichtigt wurde.

Aus diesem Grund habe ich mich etwas mit Assembly-Abhängigkeiten (bzw. Assembly-Dependencies) beschäftigen müssen. Dabei bin ich über ein nützliches Tool auf CodeProject gestoßen: Assemlby Dependencies von Natty Gur.

Weiterlesen

.NET Applikationen über das Netzwerk starten

Den größten Teil meiner Arbeit beschäftige ich mich mit der Interoperabilität von .NET-Anwendungen mit unmanaged C++-Code (no COM). Dabei kommt es immer häufiger vor, dass Anwendungen vom Netz gestartet werden sollen.

Die CAS (Code Access Security) verhindert dies, indem sie der Anwendung die Rechte für LocalIntranet-Zone zuweist. Wenn man trotzdem die Anwendung vom Netzlaufwerk aus starten möchte, muss man die CAS bemühen, der zu startenden Applikation volle Rechte zu geben (oder zumindest die benötigten Permissions).

Dies geschiet mithilfe des Tools caspol.exe, welches bei jedem .NET Framework mitgeliefert wird. Es befindet sich im Standard-Installationsverzeichnis der jeweiligen .NET Framework-Version:

{Windows-Verzeichnis}Microsoft.NET{.NET-Version}caspol.exe

Nun legen wir eine neue Codegruppe namens „FullTrustFromNetworkShare“ an:

caspol -machine -addgroup All_Code -url \serverpath* FullTrust -n FullTrustFromNetworkShare

In der grafischen .NET Framework 2.0 Configuration sieht das nun wiefolgt aus:

dotnet_20_config_caspol.png

Natürlich sollte man bei solchen Aktionen bedenken, dass man die Code-Zugriffssicherheit für das Verzeichnis quasi aushebelt und Schädlingen, die über das Verzeichnis gestartet werden, alle Rechte gibt 😐

Mehr Infos dazu gibts auf der MSDN-Seite zum CASPOL-Utility:  http://msdn.microsoft.com/library/DEU/cptools/html/cpgrfCodeAccessSecurityPolicyUtilityCaspolexe.asp