C# ‘da X509 sertifikasını PkiPath formatında kaydetmek

Her zaman olduğu gibi C# bu formatı desteklemiyor. Normalde X509Certificate2 nesnesnin Export() metodu mevcut ancak PkiPath formatını destelemiyor. Bu işlemi yapabilmek için ücretis Bouncy Castle kütüphanesi kullanabilirsiniz. Kütüphane içinde yer alan Org.BouncyCastle.Pkix.PkixCertPath class’ın GetEncoded() metodunu kullanabilirsiniz.

C# Uygulamanın yada DLL’nin dosya sürümünü almak için

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly(); //DLL'i çağıran ana uygulama
if (assembly == null)
assembly = System.Reflection.Assembly.GetExecutingAssembly(); //Kodu çalıştıran uygulama
string version = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location).FileVersion; //versiyon

MS SQL’de yine ciddi bir bug

UPDLOCK ve READPAST anahtarlarını birlikte kullanarak transaction içinde seçmiş olduğunuz kayıtların diğer transactionlar tarafından görülmemesini istiyorsanız sorgunuzda mutlaka ORDER BY deyimi bulunmalıdır. ORDER BY yoksa çalışmıyor.

MSSQL’de ciddi bir bug

MSSQL’de tabloya insert cümlesi ile veri atmaya çalışırken aşağıdaki hatayı aldım. İnternet üzerinden yaptığım aramalarda bu hatanın network sorunu olduğundan bahsedilmiş. Oysaki lokalde çalışan 2008 R2 veri tabanı ile çalışıyordum.

A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 – Physical connection is not usable)

Aşağıdaki gibi bir insert cümlesi kullanıyordum:

INSERT INTO MyTable (RecordDate) VALUES (@RecordDate)

DateTime nesnesini C# tarafında yaratmıştım ve NULL olduğu için aşağıdaki değeri taşıyordu:

01.01.0001 00:00:00

C# nesnemi nullable yapıp insert komutuna eklerken DBNull.Value yapınca sorun düzeldi.

Ama aklım hala Microsoft gibi bir firmanın DateTime hatası dönmek yerine fiziksel bağlantının koptuğu yönünde bir mesaj veriyor olması.

Exit bulmak

CL_EXITHANDLER class’ının GET_INSTANCE methoduna break point koyarsanız, programlar exit çağırmaya çalıştığında yakalayabilirsiniz.