Freitag, 19. August 2011

Git for Windows - libiconv-2.dll Error

Falls Git mal mit der Meldung
The program can't start because libiconv-2.dll is missing from your computer.
den Dienst verweigert (bei mir ging "push" nicht) hilft es unter Umständen, die libiconv-2.dll aus dem /bin Ordner nach /libexec/git-core zu kopieren. Es kann allerdings auch sein, dass in der Konfiguration irgendetwas nicht stimmt, und Git sich deswegen mit dieser irreführenden Meldung beschwert. Meist liegt es dann am Pfad zum Repository.

ELMAH auf x64 Server

Heutzutage ist es wirklich einfach, ELMAH in einem Projekt für das Error Logging zu benutzen. NuGet Package Manager starten -> nach ELMAH suchen -> Package mit der geünschten Konfiguration hinzufügen -> fertig.

Zuletzt hatte ich dies mit der MS Access Variante gemacht. Alles gut, bis ich die Anwendung auf dem Server laufen ließ. Folgende Fehler traten auf:
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
oder
The Microsoft Access database creation script failed with exit code 1
Da der 'Microsoft.Jet.OLEDB.4.0' Treiber nur 32bit ist, muss man im zuständigen Anwendungspool '32-Bit-Anwendungen aktivieren' auf True stellen. Dann sollte es mit ELMAH klappen. Gibts immer noch einen Fehler beim Erstellen der Elmah.mdb einfach mal eine vorhandene Elmah.mdb (z.B. von lokal) auf den Server legen.

http://stackoverflow.com/questions/6352904/accessproviders-working-on-webdevelopment-server-but-not-on-iis7

Montag, 1. August 2011

Project Awesome und der IE8

Bei der Verwendung des Project Awesome zur Anzeige einer PopupForm in einem MVC 3 Projekt hatte ich das Problem, dass der FormSubmit so gut wie nie im IE8 klappte. Alle anderen Browser funktionierten. Genauer gesagt klappte das Abschicken einer bestimmten Form nur das erste Mal, danach nicht mehr. Anscheinend findet es der IE8 richtig, auch POST Requests und deren Antwort zu cachen. Ich konnte das Problem letztendlich nur lösen indem ich die Actions im Controller mit
[OutputCache(Location = OutputCacheLocation.None)]
ausstattete und für jQuery diese globale Einstellung vornahm:
$.ajaxSetup({
    cache: false
});