Unexpected error 1969 beim laden eines Visual Studio Projects

Beim Versuch ein Demo-Projekt zu öffnen habe ich folgende Fehlermeldung bekommen: Unexpected error encountered. It is recommended that you restart the application as soon as possible. Error: Unspecified error File: vsee\lib\vapifunctionwrapper\vapifunctionwrapper.cpp Line number: 169 Als Ergebnis war das entsprechende Projekt nicht in der Solution verfügbar. Dieser Fehler tritt auf, weil das Demo-Projekt für den TFS (Team Foundation Server) konfiguriert war und das habe ich nicht installiert. Um das Problem zu beseitigen muss man die Projektdatei öffnen (also z.B. mit Notepad oder im Kontextmenü "Edit projectname" auswählen. Dort finden mann dann folgende Zielen: <SccProjectName>XXXX</SccProjectName> <SccLocalPath>.</SccLocalPath> <SccAuxPath>XXXXXX</SccAuxPath> <SccProvider>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</SccProvider>   Nachdem die Zeilen aus der Projektdatei gelöscht wurden, konnte das Projekt ohne Probleme geöffnet werden.  

IIS Manager Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0×80070020)

Heute habe ich versucht bei mir lokal ein SSL Zertifikat zu installieren. So etwas habe ich nicht zum ersten mal gemacht aber heute wollte es einfach nicht funktionieren. Immer wenn ich den IIS entsprechend konfiguriert hatte (Zertifikat importiert, Binding bzw. Hostheader erstellt, etc.) kam beim Versuch den IIS zu starten immer die Meldung:IIS Manager Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0×80070020)Nach der Analyse habe ich dann festgestellt, dass ein Prozess bereits den Port 443 nutzt und daher der IIS mit einem https-Binding natürlich nicht mehr richtig starten konnte. Herausfinden welcher Port aktuell genutzt wird kann man im übrigen über "netstart -ano" im Cmd-Prompt. Der Befehl "Tasklist" hat mir dann den notwendigen Hinweis gegeben. Skype ist der "Bösewicht" der den Port 443 nutzt. Dieses kann man aber per Konfiguration ausschalten. Danach funktioniert auch der Start vom IIS mit einem htts-Binding

Subversion SVN Cleander Tool

Gerade habe ich ein wirklich praktisches kleines Tool gefunden, dass jeder der Subversion verwendet sich bestimmt schon mal gewünscht hat. Schon mehrfach hatte ich das Bedürfnis, die Arbeitskopie eines SVN-Projektes komplett und mit einem Klick von den SVN-Verwaltungsdateien zu befreien. Natürlich geht das auch über die Windowssuche, ein Kontextmenü im Explorer ist aber dafür deutlich besser geeignet.  Daher meine Empfehlung: SVN-Cleaner. Die Webseite mit Informationen und dem Download findet man bei Google Project Hosting unter der URL http://code.google.com/p/svn-cleaner/.

iPhone Apps mit Microsoft .NET entwickeln

Das iPhone und auch der iPod-Touch findet immer mehr anklang und die Anzahl der Nutzer wird wohl in den nächsten Monaten und Jahren mehr zu- als abnehmen.Grund genug sich mit dem Thema zu beschäftigen. Für Menschen im Microsoft .NET Umfeld gibt es jetzt ein eBook "Building iPhone and iPod touch Applications for the .NET/C# Developer with MonoTouch" das erklärt wie man mit Hilfe von C#, MonoTouch und MonoDevelop eine iPhone App entwickeln kann. Das ist doch mal cool.Hier der Link zum eBook

Lorem ipsum Generator

Gerade in der Design- bzw.Entwicklungsphase ist es immer sehr hilfreich,wenn man mit vernüftigen Texten arbeiten kann. Zumindest Texte die über ein "Testeintrag" oder "Hallo Welt" hinausgehen.Für diesen Zweck und damit wir armen Entwickler uns nicht immer einen sinnvollen Text ausdenken müssen gibt es "Lorem ipsum". Dabei handelt es sich um einen Blindtext ohne jede Bedeutung, der lediglich als Platzhalter verwendet wird. Dieser pseudo-lateinischen Texte vermittelt durch die Verteilung der Buchstaben und Wortlänge den Eindruck eines natürlichen Textes. Da die "Lorem ipsum" Texte aber Inhaltlich keine Bedeutung darstellen, wird der Betrachter den den Inhalt nicht abgelenkt. Heute habe ich für diese Zwecke ein sehr nützliches Tool entdeckt, dass einem beliebe "Lorem ipsum" Texte erzeugen kann. Durch die Angabe von Länge, Anzahl der Wörtern, Anzahl der Abätze kann man sehr schön die Texte varieren. Das Tool befindet sich auf der Seite http://www.loremipsum.de

Organisation von Projektreferenzen innerhalb eines Solution

Mir fällt sehr oft auf, dass beim Aufbau einer Anwendung mit mehreren Projekten innerhalb einer Solution, immer wieder eine direkte Abhängigkeit geschaffen wird, indem man beim Projekt sagt: "Verweis hinzufügen" -> Projekte -> Das zu referenzierende Projekt.Gemacht wird so etwas z.B. wenn man die Datenobjekte / -definitionen getrennt von der Logik, Datenzugriff, etc. in einem eigenen Projekt verwalten möchte (was eigentlich so wieso immer getan werden sollte). Solange man alleine an einem Projekt arbeitet mag das noch okay sein und funktionieren; arbeitet man aber in größeren Projektteams zusammen, wo nicht immer alle die komplette Solution inkl. SourceCode Kompilieren sollen / möchten / können, muss man regelmäßig die Referenzen manuell neu aufbauen. Ich empfehle immer nur die kompilierte Assembly zu referenzieren und alle 1024x768 Normal 0 21 false false false DE X-NONE X-NONE MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Normale Tabelle"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} genutzten Assemblies in einem gemeinsamen Ordner abzulegen. Dann ist es nämlich vollkommen egal, ob man die gesamte Solution, einen Teil oder sogar nur ein Projekt öffnet. Mehr Aufwand bedeutet das für die Konfiguration und Entwicklung auch nicht, da nur einmal bei der Anlage des Projektes ein Post-Build-Kommando in den Einstellungen des Projektes hinterlegt werden muss. Hier ein Beispiel dafür:xcopy /y /d "$(TargetPath)" "$(SolutionDir)SharedAssemblies\"Der Parameter "/d" sorgt dafür das nur aktueller Versionen kopiert werden und "/y" unterdrückt die Nachfrage, ob vorhandene Dateien überschrieben werden sollen und macht dieses einfach automatisch.By the way... eine schöne Übersicht der XCOPY Parameter gibt es hier bei MicrosoftDamit nun die Reihenfolge der Kompilierung richtig ist und auch Veränderungen von z.B. Basisklassen zuerst neu erzeugt werden, muss man unter den Projektabhängigkeiten nun die einzelnen Projekte angeben. Das ist kein Verweis (!) veranlasst aber Visual Studio in der richtigen Reihenfolge die Projekte zu erstellen!that's it

Auflistung der bekanntesten Design Patterns

Mehr durch Zufall habe ich gerade eine Seite entdeckt, die zwar relativ simple aber wie ich finde doch sehr verständlich erklärt, welche Design Patterns (zumindest eine Liste der bekanntesten Patterns) es gibt und was sich hinter den einzelnen Design Patterns versteckt. Die SourceCode Beispiele sind zwar nicht in C# oder einer anderen .NET Sprache aber ich denke auch mit Java-Basics sollte jeder zurecht kommen. Die Beispiele sind sehr simple und überschaubar gehalten... http://www.qrst.de/wiki/composite.html

SQL 2005 Server error: Property IsLocked is not available for Login '[username]'

Heute musste ich feststellen das auf einem Windows 2003 Server mit einer Instance vom MS SQL Server 2005 Express DotNetNuke die Arbeit eingestellt hat. Ein Blick in das Eventlog vom Server ergab, das sich der Benutzer nicht mehr am SQL-Server anmelden konnte. Als ich die Eigenschaften des entsprechenden Datenbank-Benutzers überprüfen wollte, kam die Meldung: Property IsLocked is not available for Login '[username]'. This property may not exist for this object, or may not be retrievable due to insufficient access rights. (Microsoft.SqlServer.Smo) Ein Wechsel zwischen dem Anmeldemodus Windows-Auth und gemischter Modus betrachte keine Veränderung - diesen Tipp hatte ich in einem Forum gelesen. Was geholfen hat war das absetzen vom folgendem SQL-Befehl:ALTER LOGIN [usermae] WITH PASSWORD=N'meintollespwd',CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF, DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]GOALTER LOGIN [username] ENABLE  Damit konnte sich DotNetNuke wieder anmelden und auch die Eigenschaften vom Benutzer waren wieder einsehbar und konnten über die Managmentkonsole vom SQL-Server modifiziert werden. Die wirkliche Ursache habe ich noch nicht gefunden - zumindest läuft die Webanwendung wieder!

Javascript f&Uuml;r Galleries, Slideshows and Lightboxes

Aktuell beschäftige ich mich mit der Entwicklung einer kleinen praktischen Komponente, die ein Web 2.0 Popup-Fenster für DotNetNuke Module bereitstellt. Dabei geht es weniger darum eine Bilder anzeigen zu lassen, das Hauptziel ist die Nutzung für Bearbeitungsfenster. Ebenfalls soll das Modul auch in unser Videomodul einfließen, damit das Videos in einem Popup angezeigt werden können. Dazu vielleicht aber später mehr....Auf eine google-Suche habe ich diese Seite gefunden, die 56 Skripts für Galliers, Slideshows auflistet und direkt zu den entsprechenden Websiten verlinkt. Mein Favorit ist eigentlich lightbox aber über den Tellerran zu schauen kann ja nie schaden. Nachtrag: Soeben habe ich einen Kommentar per E-Mail erhalten und mir wurde da http://highslide.com/ ans Herz gelegt, ist zwar nicht kostenfrei aber bietet schon eine ganze Menge an Funktionalität .... man hat doch wirklich die "Qual der Wahl"

Festplattenplatz der Systempartition "WINDOWS\SoftwareDistribution\Download"

Bei vielen angemieteten Servern ist die Systempartition meistens sehr klein gewählt und läuft sehr gerne bis zur Speichergrenze voll. Dagegen kann man vollgendes machen: Die einzelnen Websites nicht auf c:\inetpub\wwwroot installieren - wie es ja die Standardeinstellung ist - sondern direkt auf d:\ einen eigenen Ordner dafür anlegen. Ebenfalls die Logdateien der virtueleln Webserver und SMTP in einem Ordner unter z.B. d:\ ablegen Fehlgeschlangen E-Mails von Windows-SMTP Server ebenfalls auf d:\ ablegen lassen und nicht wie es standard ist unter "c:\inetpub\mailroot" Neben dieses vermutlich bekannten Einstellungen bin ich heute über den Ordner "c:\WINDOWS\SoftwareDistribution\Download" gefunden. Dort werden die runtergelagenen ServicePacks, Hotfixes, etc. abgelegt und nach der Installation nicht gelöscht. Gerade nach dem Download eines ServicePacks ist dieser Ordner meistens sehr schnell sehr groß. Nach erfolgreicher Installation kann der Ordner ohne Probleme einfach wieder gelöscht werden und schon hat man genügend Platz (oder mehr Platz) auf der Platte

Eine Icon-Suchmaschine

Gerade habe ich folgendes entdeckt: http://www.iconlook.com Ganz nett und hilfreich für den Entwickleraltag - an der Übersichtlichkeit muss wohl noch etwas gearbeitet werden aber das kommt bestimmt noch :)

AnkhSVN: Subversion Client AddOn Microsoft Visual Studio 2005, 2008

Seit einiger Zeit arbeite wir sehr zufrieden mit Subversion, lediglich die bisher nicht bekannte fehlende Unterstützung von Visual Studio 2005 / 2008 war ein "Dorn im Auge". Jedoch gibt es auch dafür eine Lösung und die nennt sich AnkhSVN. Dabei handelt es sich um eine AddOn für Visual Studio, dass die benötigte Funktionalität für die tägliche Arbeite direkt im Visual Studio zur Verfügung stellt. Per Kontextmenü kann man nun Projekte in Subversion übertragen oder ähnliches. Das AddOn Clienttool "AnkSVN" für Visual Studio gibt es hier.

Install Memcached on Windows Vista

Gerade beschäftige ich mich ein wenig mit dem Thema Caching und dabei kommt man ja irgendwie an Memcached nicht vorbei. Wollte memcached dabei als Service in Vista laufen lassen, doch beim Aufruf in der Commandozeile c:\memcached\memcached.exe -d install kommt ständig die Fehlermeldung: "failed to install service or service already installed" relativ schnell habe ich herausgefunden das es an den unzureichenden Rechten meines Benutzeraccounts unter Vista liegt. Damit es funktioniert muss man die Console als Administrator ausführen. Dafür gibt es einen Shortcut: Wenn man bei der Ausführung der Anwendung Ctrl+Shift+Enter drückt, kann man sich den Weg über das Kontextmenü sparen.

Google Analytics und eine Subdomain mit dem Namen google

Gerade kam ein Kunde mit folgendem Problem auf uns zu: Eine absolut identische Seite, gleiches System, gleicher inhalt. Einmal wurde die Seite über http://www.mydomain.de aufgerufen und einmal über http://google.mydomain.de. Der zweite Auruf wurde aber bei Google-Anaytics nie getrackt. Der Aufruf zu Analytics wurde erst gar nicht durchgeführt....Nach kurzer Debugphase vom JavaScript (urchin.js) war der Fehler schnell gefunden.  Das Script fragt ab, ob die Aufruf von einer Seite kommt, die irgendwie ".google.", "google.", usw. binhaltet. Dann wird das Script nicht weiter ausgeführt.

Subversion 1.5 auf Windows Server / VisualSVN Server 1.5 Release

Eine aktualisierte Version von VisualSVN Server - ein Installation-Package für Subversion auf einem Windows Server 200x - steht zum Download bereit. Diese MSI-Paket installiert einen Subversionen-Server in der Version 1.5. Auch ein Update ist ohne Probleme möglicht, lediglich die Konvertierung muss auf das neuste Subversionformat durchgeführt werden. Hier ist der direkte Link zum Download:  http://www.visualsvn.com/server/changes/1.5/ Ich bin mittlerweile wirklich dankbar für dieses Stück Software, da die Installation wirklich simple ist :)

T-SQL - SELECT TOP durch einen Parameter beinflussen

Heute stellte sich mir die Aufgabe eine simple Stored Procedures zu schreiben, die x Datensätze aus einer Tabelle liest. Kein Paging sondern wirklich nur eine ganz bestimmte Anzahl - halt die TOP x Datensätze. Also habe ich folgende SP geschrieben: CREATE PROCEDURE dbo.Get_Top@topCount intAS    SELECT TOP @topCount    id, col1, col2, col3   FROM TestTable   Leider wurde mir dabei immer ein Syntaxfehler ausgeworfen - die Nutzung von dem Parameter innerhalb vom SQL-Statement scheint dem SQL-Server 2005 nicht zu schmecken. Also erst mal etwas gegooglet.... und zum guten Schluß stelle sich raus das die Lösung so einfach ist - aber darauf kommt man wohl zunächst nicht. Es reicht aus um das @topCount einfach eine Klammer zu setzen und schon kann der SQL-Server die SP verarbeiten. Die lauffähige Stored Procedures für den SQL-Server sieht dann so aus: CREATE PROCEDURE dbo.Get_Top@topCount intAS    SELECT TOP (@topCount)    id, col1, col2, col3   FROM TestTable Darauf muss man erst mal kommen ;-)

.NET AJAX .axd und der Fehler utcDate out of the range

Bei der Neuinstallation eines Windows 2008 Server mit ASP.NET 2.0 und AJAX bekam ich beim Abruf von Resourcen über WebResource.axd und ScriptResource.axd jeweils den Fehler: Specified argument was out of the range of valid values.Parameter name: utcDate 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.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: utcDateSource 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.   Lösung: Das liegt an der Systemzeit vom Windows Server. Zunächst sollte diese Zeit überprüft werden und falls nötig auf das aktuell Datum / Uhrzeit gesetzt werden. Sollte dadurch der Fehler nicht behoben werden, dann einfach unter Software die Installation von AJAX mit der Option "Reparieren" durchführen. Es scheint hier wohl eine Fehler zu geben und ASP.NET AJAX kommt dann mit dem Datum nicht zurecht. Nach der "erneuten" Installation funktioniert dann alles wie gewollt!  

Firefox Add-On / Screenshots erstellen und anpassen

Wer kennt es nicht (gerade in kleinen) in Kundenprojekten. Können Sie hier den Text ändern, die Farbe dort gefällt mir nicht - hm, welche genau? Zwei Menschen sitzen vor unterschiedlichen Rechner und versuchen ein Design abzustimmen. Das ist nicht immer ganz einfach. Leider schaffe es auch nicht alle einen Screenshot zu erstellen um diese dann mit den Änderungen abzuliefern. Abhilfe schafft hier FireShot, ein kleines Firefox Add-On das nicht nur Screenshots macht, sondern dem Anwender es auch direkt erlaubt Veränderungen im Bild vorzunehmen. Sehr schön, das ist wirklich nützlich! Den Download von FireShot gibt es hier...

blogato die Blog-Suchmaschine

Bei der Durchsicht meiner Online-Statistiken ist mir gerade folgender Link aufgefallen: http://www.blogato.net/ und da ich von Natur aus ein neugieriger Mensch bin (liegt wohl am Beruf), habe ich mir die Seite etwas näher angeschaut. Dabei handelt es sich um eine Suchmaschine, die nur in Blogs sucht. Ziel ist es "...nur die relevantesten und interessantesten Beiträge in der Blogsphäre zu finden." Da auch hier kein "Web 2.0" fehlen darf (eigentlich mag ich es gar nicht Web 2.0 zu schreiben) sollen die User aktiv mithelfen die Qualität der Suchergebnisse zu steigern. Mein Blog ist auf jeden Fall schon mal im Index :)

Hawaii das neue Microsoft Paradies (oder .NET 4.0)

Hm, also wenn ich die Wahl habe .. dann entscheide ich mich für Hawaii :) Wie ich gerade gehört habe ist das der Codename für .NET 4.0! Ob .NET 4.0 genau so klasse wird wie Hawaii wird sich zeigen .. Das Framework soll voraussichtlich im Jahr 2009 erscheinen... lassen wir uns überraschen, was Microsoft da zaubert!

Subversion fuer Linux-Dummies

Jeder der Subversion scheut, weil man sich ja meist doch nicht in der Linux(änlichen)-Welt bewegt, wird sich jetzt freuen: Es gibt eine Verwaltungsoberfläche womit auch wir Microsofties zurecht kommen :) Unter http://www.visualsvn.com/server/ gibt es nun eine SnapIn für die MMC. Noch erfreulicher finde ich aber, dass diese Lösung nichts kostet und jedem frei zur Verfügung steht!  

Der kostenlose eBook Adventskalender

Auf der Website http://entwickler-press.de/ gibt es in der Zeit von 1. - 24. Dezember einen ganz besonderen Adventskalender. Jeden Tag (und nur an dem entsprechenden Tag) gibt es ein kostenlose eBook zum Download. Dabei handelt es sich nicht um irgendwelche alten Hündchen sondern laut Angabe sollten sogar aktuelle Bücher aus dem Jahr 2007 angeboten werden. Folgende Themen werden dabei behandelt: Java, Apache und XML über Software-Architektur sowie Web- und Skriptsprachen bis hin zu .NET- und Windows-Technologien. Bin gespannt was morgen hinter meinem Türchen ist :)

Escape Sequence Description

Hier eine Liste der wichtigsten (zumindest für mich) Escape-Sequencen: \t Tab (Unicode 0x0009). \r Carriage return (0x000d). \n Newline (line feed) (0x000a). \v Vertical tab (0x000b). \a Alert (0x0007). \b Backspace (0x0008). \0 Null (0x0000). \\ Backslash (0x005c). \' Single quote (0x0027). \" Double quote (0x0022).  

eBook OpenXML explained zum Nulltarif

Hier mal wieder ein Hinweis auf ein kostenloses eBook. Wouter Van Vugt hat auf 129 Seiten das Thema Grundlagen rund um „OpenXML“ behandelt.  Dieses eBook steht auf der Website von “OpenXMLDeveloper.org” kostenlos zum herunterladen bereit (PDF, 3,2 MB). In einem gesonderten Download sind darüber hinaus die im Buch behandelten Samples verfügbar.  

V-Server: Wie erstelle ich eine Sicherung mit dem NTBackup?

Heute Abend habe ich mich mal wieder mit einem V-Server (Virtueller Server) bei 1und1 rumgeschlagen. Mein Ziel war ein automatisches Update jede Nacht durchzuführen. Dabei bekam ich allerdings ständig den Fehler: Beim Erstellen der Volumeschattenkopie wurde ein Fehler ermittelt:0x8004230f Das virtualisierte Dateisystem basiert auf der Virtualisierungstechnik Virtuozzo von SWSoft und dadurch steht die Volumenschattenkopie in Windows nicht zur Verfügung. Durch den Befehl ntbackup mit verschiedenen Befehlszeilenparametern kann man den Sicherungsvorgang über die Eingabeaufforderung oder Batchdatei ausführen.C:\>ntbackup backup C:\Daten /J "Backup" /F "C:\Backup\Daten.bkf" /SNAP:offDieser Befehl führt eine Sicherung des Ordner C:\Backup und deren Unterordner in die DateiC:\Daten.bkf durch. Die Volumenschattenkopie wird über den Befehlszeilenparameter /SNAP:offdeaktiviert.