Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İzlemeler, uygulama yürütme sırasında oluşturulan belirli iletilerin yayımlanmasıdır. İzlemeyi kullanırken, gönderilen iletileri toplamak ve kaydetmek için bir mekanizmanız olmalıdır. İz iletileri dinleyiciler tarafından alınır. Dinleyicinin amacı, izleme iletilerini toplamak, depolamak ve yönlendirmektir. Dinleyiciler, izleme çıktısını günlük, pencere veya metin dosyası gibi uygun bir hedefe yönlendirir.
bu tür dinleyicilerden biri olan DefaultTraceListener, izleme etkinleştirildiğinde otomatik olarak oluşturulur ve başlatılır. İzleme çıkışının ek kaynaklara yönlendirilmesi için ek izleme dinleyicileri oluşturup başlatmanız gerekir. Oluşturduğunuz dinleyiciler tek tek ihtiyaçlarınızı yansıtmalıdır. Örneğin, tüm izleme çıktılarının metin kaydını isteyebilirsiniz. Bu durumda, etkinleştirildiğinde tüm çıkışı yeni bir metin dosyasına yazan bir dinleyici oluşturursunuz. Öte yandan, yalnızca uygulama yürütme sırasında çıkışı görüntülemek isteyebilirsiniz. Bu durumda, tüm çıkışı bir konsol penceresine yönlendiren bir dinleyici oluşturabilirsiniz. EventLogTraceListener izleme verisini bir olay günlüğüne yönlendirebilir ve TextWriterTraceListener izleme verisini bir akışa yazabilir.
İzlemeyi Etkinleştirme
İşlem işleme sırasında izlemeleri etkinleştirmek için uygulamanızın yapılandırma dosyasını düzenlemeniz gerekir. Aşağıda bir örnek verilmiştir.
<configuration>
<system.diagnostics>
<sources>
<source name="System.Transactions" switchValue="Warning">
<listeners>
<add name="tx"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "tx.log" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
System.Transactions izlemeleri "System.Transactions" adlı kaynağa yazılır. Kullanmak istediğiniz izleme dinleyicisinin adını ve türünü belirtmek için kullanabilirsiniz add . Örnek yapılandırmamızda Dinleyiciye "tx" adını verdik ve standart .NET Framework izleme dinleyicisini (XmlWriterTraceListener) kullanmak istediğimiz tür olarak ekledik. Dinleyici için günlük dosyasının adını ayarlamak amacıyla initializeData kullanın. Ayrıca, basit bir dosya adı için tam yolu değiştirebilirsiniz.
Her izleme iletisi türüne, önem derecesini belirtmek için bir düzey atanır. Uygulama etki alanının izleme düzeyi bir olay türünün düzeyine eşit veya daha düşükse, bu ileti oluşturulur. İzleme düzeyi, yapılandırma dosyasındaki switchValue ayar tarafından denetlenmektedir. Tanılama izleme iletileriyle ilişkili düzeyler aşağıdaki tabloda tanımlanmıştır.
| İzleme Düzeyi | Açıklama |
|---|---|
| Çok Önemli | Aşağıdakiler gibi ciddi hatalar oluştu: - Kullanıcı işlevselliğinde anında kayıplara neden olabilecek bir hata. - Bir yöneticinin işlev kaybını önlemek için eylem gerçekleştirmesini gerektiren bir olay. - Kod kilitleniyor. - Bu izleme düzeyi, diğer kritik izlemeleri yorumlamak için yeterli bağlam da sağlayabilir. Bu, ciddi bir hataya yol açan işlemlerin sırasını belirlemeye yardımcı olabilir. |
| Hata | Kullanıcı işlevselliği kaybına neden olabilecek bir hata (örneğin, geçersiz yapılandırma veya ağ davranışı) oluştu. |
| Uyarı | Daha sonra bir hataya veya kritik hataya (örneğin ayırmanın başarısız olması veya bir sınıra yaklaşması) neden olabilecek bir koşul vardır. Kullanıcı kodundaki hataların normal işlenmesi (örneğin, işlem durduruldu, zaman aşımları, kimlik doğrulaması başarısız oldu) bir uyarı da oluşturabilir. |
| Bilgi | Sistem durumunu izlemek ve tanılamak, performansı ölçmek veya profil oluşturmak için yararlı iletiler oluşturulur. Bunlar, oluşturulan veya taahhüt edilen bir işlem, önemli bir sınırın geçilmesi veya önemli kaynakların tahsis edilmesi gibi işlem ve katılım ömrü olaylarını içerebilir. Daha sonra bir geliştirici bu tür bilgileri kapasite planlaması ve performans yönetimi için kullanabilir. |
İzleme Kodları
Aşağıdaki tabloda altyapı tarafından System.Transactions oluşturulan izleme kodları listelenmektedir. Tabloya izleme kodu tanımlayıcısı, EventType izleme için numaralandırma düzeyi ve izleme için içinde yer alan TraceRecord ek veriler dahildir. Buna ek olarak, izlemenin ilgili izleme düzeyi de TraceRecord içinde depolanır.
| TraceCode | EtkinlikTürü | TraceRecord'da ek veriler |
|---|---|---|
| İşlemOluşturuldu | Bilgi | İşlemTakipId |
| İşlem Tanıtıldı | Bilgi | Yerel TransactionTraceId, Dağıtılmış TransactionTraceId |
| KaydolmaOluşturuldu | Bilgi | TransactionTraceId, EnlistmentTraceId, KatılımTürü (dayanıklı/geçici), KatılımSeçenekleri |
| KaydolmaGeriÇağırmaNegatif | Uyarı | TransactionİzlemeKimliği, KatılımİzlemeKimliği Geri çağırma işlevi (forcerollback/aborted/indoubt) |
| TransactionRollbackCalled | Uyarı | İşlemTakipId |
| İşlem Durduruldu | Uyarı | İşlemTakipId |
| Şüpheli İşlem | Uyarı | İşlemTakipId |
| İşlemKapsamıOluşturuldu | Bilgi | TransactionScopeResult, aşağıdaki gibi olabilir: - Yeni işlem. - İşlem geçti. - Bağımlı işlem geçirildi. - Geçerli işlemi kullanma. - İşlem yok. yeni geçerli TransactionTraceId |
| TransactionScopeDisposed | Bilgi | Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si. |
| İşlemKapsamıTamamlanmamış | Uyarı | Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si. |
| İşlemKapsamıYanlışYuvaYerleştirildi | Uyarı | Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si. |
| İşlemKapsamıGüncelİşlemDeğişti | Uyarı | Mevcut eski İşlem İzleme Kimliği, diğer İşlem İzleme Kimliği |
| TransactionScopeTimeout | Uyarı | Kapsamın "beklenen" mevcut işleminin TransactionTraceId'si. |
| Bağımlı Klon Oluşturuldu | Bilgi | TransactionTraceId, oluşturulan bağımlı işlemin türü (RollbackIfNotComplete/BlockCommitUntilComplete) |
| DependentCloneComplete | Bilgi | İşlemTakipId |
| Kurtarma Tamamlandı | Bilgi | Kaynak Yöneticisi GUID (temel) |
| Yeniden Listele | Bilgi | Kaynak Yöneticisi GUID (temel) |
| İşlemSerileştirilmiş | Bilgi | İşlemİzlemeId. |
| İşlem İstisnası | Hata | Özel durum iletisi |
| Geçersiz İşlem İstisnası | Hata | Özel durum iletisi |
| Dahili Hata | Çok Önemli | Özel durum iletisi |
| TransferEvent | Bir işlem seri durumdan çıkarıldığında veya bir işlemden dağıtılmış bir System.Transactions işleme yükseltildiğinde, ExecutionContext'ten geçerli ActivityID ve dağıtılmış işlem kimliği yazılır. DTC yönetilen koda geri çağırdığında, dağıtılmış işlem kimliği geri çağırma süresi boyunca ExecutionContext içinde ActivityID olarak ayarlanır. |
|
| Yapılandırılmış Varsayılan Zaman Aşımı Ayarlandı | Uyarı | Ek veri yok |
| İşlem Zaman Aşımı | Uyarı | Zaman aşımına uğrayan işlemin TransactionTraceId değeri. |
Yukarıdaki ek veri öğelerinin her biri için XML şeması aşağıdaki biçime sahiptir.
İşlem İz Tanımlayıcı
<TransactionTraceIdentifier>
<TransactionIdentifier >
string representation of transaction id
</TransactionIdentifier>
< CloneIdentifier >
the clone id number
</CloneIdentifier>
</TransactionTraceIdentifier>
Tescil İzleme Tanımlayıcısı
<EnlistmentTraceIdentifier>
<ResourceManagerId>
string form of guid
</ResourceManagerId>
<TransactionTraceIdentifier>
<TransactionIdentifier >
string representation of transaction id
</TransactionIdentifier>
<CloneIdentifier >
the clone id number
</CloneIdentifier>
<TransactionTraceIdentifier>
<EnlistmentIdentifier>
the enlistment id number
</EnlistmentIdentifier>
</EnlistmentTraceIdentifier>
Resource Manager Tanımlayıcısı
<ResourceManagerId>
string form of guid
</ResourceManagerId>
İzleme için Güvenlik Sorunları
Yönetici olarak izlemeyi açtığınızda, hassas bilgiler varsayılan olarak genel olarak görüntülenebilir bir izleme günlüğüne yazılabilir. Olası güvenlik tehditlerini azaltmak için, izleme günlüğünü paylaşım ve dosya sistemi erişim izinleri tarafından denetlenen güvenli bir konumda depolamayı düşünmelisiniz.