9. November 2010
17. September 2010
Deadlocks im SqlServer analysieren
Um Details zu einem DeadLock im SQL-Server zu analysieren müssen folgende beiden Statements zunächst auf dem SQLServer ausgeführt werden:
DBCC TRACEON(1204,-1)und
DBCC TRACEON(1222,-1)Im Falle eines DeadLocks erhält man dann im SQLSever-Errorlog (Achtung: NICHT IM WINDOWS EVENT-LOG, sondern in Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG ) folgenden Eintrag:
4:33:24.60 spid5s Deadlock encountered .... Printing deadlock information
2010-09-17 14:33:24.60 spid5s Wait-for graph
2010-09-17 14:33:24.62 spid5s
2010-09-17 14:33:24.62 spid5s Node:1
2010-09-17 14:33:24.62 spid5s KEY: 8:72057594042384384 (4600ba76d76e) CleanCnt:3 Mode:X Flags: 0x0
2010-09-17 14:33:24.62 spid5s Grant List 2:
2010-09-17 14:33:24.62 spid5s Owner:0x178A6BE0 Mode: X Flg:0x0 Ref:0 Life:02000000 SPID:57 ECID:0 XactLockInfo: 0x1CF52C7C
2010-09-17 14:33:24.62 spid5s SPID: 57 ECID: 0 Statement Type: SELECT Line #: 1
2010-09-17 14:33:24.62 spid5s Input Buf: Language Event: SELECT * FROM TAB_CATALOG
2010-09-17 14:33:24.62 spid5s Requested By:
2010-09-17 14:33:24.62 spid5s ResType:LockOwner Stype:'OR'Xdes:0x2B9038F8 Mode: S SPID:61 BatchID:0 ECID:0 TaskProxy:(0x26102378) Value:0x26effe40 Cost:(0/2356)
2010-09-17 14:33:24.62 spid5s
2010-09-17 14:33:24.62 spid5s Node:2
2010-09-17 14:33:24.62 spid5s KEY: 8:72057594040352768 (3c004236556a) CleanCnt:2 Mode:X Flags: 0x0
14. September 2010
T4 Templates debuggen mit VisualStudio
Um T4-Templates aus VisualStudio heraus zu debuggen muss das Template um die Debug Property erweitert werden:
Siehe auch http://www.olegsych.com/2008/09/t4-tutorial-debugging-code-generation-files
<#@ template langauge="C#v3.5" debug="True"#>Dadurch werden das notwendig PDB-File und die Source-Datei unter c:\Documents and Settings\USERNAME\Local Settings\Temp\ abgelegt. Danach kann im Script
System.Diagnostics.Debugger.Launch();eingefügt werden um den Debugger zu starten.
Siehe auch http://www.olegsych.com/2008/09/t4-tutorial-debugging-code-generation-files
8. September 2010
Firefox & NTLM
Um im Firefox NTLM Authentification zu verwenden muss über
about:configdie Site eingetragen werden, zu der NTLM Authentification erlaubt werden soll. Dies wird unter
network.automatic-ntlm-auth.trusted-urisgemacht. Mehrere Sites werden durch Komma getrennt:
http://intranet,http://server1
6. August 2010
PerfMon-Logs in DB importieren
Schritt 1: ODBC-Datenquelle anlegen: "MyODBCSource"
Schritt 2: Über relog in DB importieren:
Schritt 2: Über relog in DB importieren:
relog myperlog.blg -f SQL -o SQL:MyODBCSource!myperlog.blgSchritt 3: In der ODBC-Datenquelle wurden 3 Tabellen angelegt:
- DisplayTOID: Informationen über alle importieren Logs
- CounterDetails: Informationen über alle gesammelten Counter
- CounterData: Daten zu den Countern (GUID FK zu DisplayTOID und CounterID FK zu CounterDetails)
23. Juli 2010
UNC Alias für einen DomainController unter Windows 2003 Server
Problem: Man hat im DNS-Server ein Alias für den Domain-Controller erzeugt. Dieses kann aber nicht über einen UNC-Pfad aufgelöst werden.
Lösung: Diese zwei Registry-Keys eintragen, dann funktioniert es:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"DisableStrictNameChecking"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"DisableLoopbackCheck"=dword:00000001
Lösung: Diese zwei Registry-Keys eintragen, dann funktioniert es:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"DisableStrictNameChecking"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"DisableLoopbackCheck"=dword:00000001
6. Mai 2010
Binding Probleme von Assemblies analysieren
Um Binding-Probleme wie diese
unter .NET zu finden, gibt es das Assembly Binding Log Viewer-Tool (Fuslogvw.exe), das Teil des Microsoft SDKs für Windows ist.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
unter .NET zu finden, gibt es das Assembly Binding Log Viewer-Tool (Fuslogvw.exe), das Teil des Microsoft SDKs für Windows ist.
3. Mai 2010
27. April 2010
LOG4NET Config wird nicht geladen
Problem: Die Konfiguration von LOG4NET in der App.Config wird nicht geladen.
Lösung:
1. Prüfen, ob in AssemblyInfo.cs folgendes Attribut gesetzt ist:
2. Prüfen, ob die App.config folgende Einträge enthält:
3. Ist die Assembly (mit der LOG4NET-Konfiguration in der app.config) eine DLL, die z.B. über NUnit ausgeführt wird und andere DLLs referenziert, die LOG4NET verwenden, muss die DLL explizit eine LOG4NET-Klasse laden, auch wenn sie selbst kein Logging verwenden möchte. Sonst wird die Konfiguration nicht geladen!
Um möglichen Problemen auf den Grund zu gehen, kann das LOG4NET-interne Logging eingeschaltet werden in der app.config:
Wird die Konfiguration erfolgreich geladen, so muss folgender Log-Output generiert werden:
Lösung:
1. Prüfen, ob in AssemblyInfo.cs folgendes Attribut gesetzt ist:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
2. Prüfen, ob die App.config folgende Einträge enthält:
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
...
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<header value="[Header]" />
<footer value="[Footer]" />
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
...
</configuration>
3. Ist die Assembly (mit der LOG4NET-Konfiguration in der app.config) eine DLL, die z.B. über NUnit ausgeführt wird und andere DLLs referenziert, die LOG4NET verwenden, muss die DLL explizit eine LOG4NET-Klasse laden, auch wenn sie selbst kein Logging verwenden möchte. Sonst wird die Konfiguration nicht geladen!
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Um möglichen Problemen auf den Grund zu gehen, kann das LOG4NET-interne Logging eingeschaltet werden in der app.config:
<appsettings>
<add key="log4net.Internal.Debug" value="true"></add>
</appsettings>
Wird die Konfiguration erfolgreich geladen, so muss folgender Log-Output generiert werden:
...
log4net: XmlConfigurator: configuring repository [log4net-default-repository] using file [C:\projects\Testing\ReportingTestProject\bin\Debug\ReportingTestProject.dll.config]
...
9. April 2010
PowerShell 2.0 Notizen
- PowerShell 2.0 wird mit Windows 7 ausgeliefert, für andere Betriebssyteme kann man das Windows Management Framework installieren, das PowerShell 2.0 enthält.
- Ab 2.0 gibt´s eine IDE: Windows PowerShell ISE
Wichtige Befehle:
- Get-Help (help): Hilfe zu einem CommandLet, z.B.
help dir
Hilfe zu einem Befehl oderhelp *
Hilfeübersicht über eine Menge von Befehlen (definiert über einen Filter) - Get-Children (dir): Erweitertes "Dir"
- Format-List (fl): Formattiert Ausgabe als Liste (alle Items untereinander als Key/Value-Paare), z.B.
dir | fl
für die Default Attribute
oderdir | fl *
für alle verfügbaren Attributen (der Stern * eignet sich auch zur Ermittlung welche Attribute ein CommandLet hat) - Format-Table (ft): Formattiert Ausgabe als Tabelle (z.B:
dir | ft Name,Length
mit zwei bestimmten Attributen - Sort-Object (sort): Sortiert Objekte, z.B.
dir | sort LastWriteTime
- Signieren: Infos, wie PowerShell-Scripts signiert werden können gibt es hier.
- Sollte beim Signieren ein "UnknownError" kommen liegt das daran, dass das .PS1-File mit der Powershell ISE erzeugt wurde. Diese speichert per default als "Unicode big endian". Einfach die Datei in UTF-8 speichern, dann funktioniert das Signieren mit Set-AuthenticodeSignature.
24. März 2010
15. März 2010
ActivityMonitor im SqlServer Management Studio starten
12. März 2010
4. Februar 2010
Verwaiste Login<->DBUser-Zuordnung nach Restore beim SqlServer
Problem: Nach dem Einspielen eines Backups auf dem SqlServer sind die Login<->DB User Zuordnungen verschwunden.
Lösung: Wiederherstellung der Zuordnunung über dieses Script:
Lösung: Wiederherstellung der Zuordnunung über dieses Script:
exec sp_change_users_login 'Auto_Fix', 'MyUser'
20. Januar 2010
SID zu einem User ermitteln
Über das Sysinternal-Tool psgetsid kann man SIDs ermitteln
SID zu einem User
User zu einer SID
SID zu einem User
psgetsid.exe "User Name"
User zu einer SID
psgetsid.exe S-1-5-21-3915356022-177584461-1412300212-1116
13. Januar 2010
InstallUtil Debuggen
Um Code zu debuggen, der über das InstallUtil installiert werden soll, kann wie folgt vorgegangen werden:
Dadurch wird der Debugger gestartert, bevor es los geht.
public class MyInstaller: Installer
{
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
System.Diagnostics.Debugger.Launch();
}
}
Dadurch wird der Debugger gestartert, bevor es los geht.
Abonnieren
Posts (Atom)