2008-09-26 19 views
7

Web servisimizde oturum açmak için kullanacağım ideal durum, tüm yöntem çağrılarını (kimlik doğrulamanın yanı sıra veri erişimi) kendilerine iletilen parametrelerin yanı sıra oluşabilecek hatalarla günlüğe kaydetmektir. Onları aynı çağrı ile ilişkilendiren tek bir kimlik ile bağlantılı. Ayrıca, tüm parametrelerin günlüğe kaydedilip kaydedilmediğini ya da sadece yöntem çağrısı yapılıp yapılmadığını kontrol etmeyi çok isterim. Tüm girişlerin günlüğe kaydedilip kaydedilmediğini veya sadece başarısız olanları kontrol edebilmek istiyorum. Yine, tek bir istekte elde edilen tüm bilgiler bir kimlik (kılavuz veya başka bir yolla) ile birbirine bağlanır..Net Web Service Logging

Bu benim ideal günlük durumum. Herkes bunun nasıl uygulanacağını bilir ve Manchester, NH bölgesine taşınmaya istekli olur muydu ?;)

Ancak, ciddi bir şekilde, bir hataya gönderilen bir web servis talebini bağlama konusunda nasıl bir adım atacağımı bilen var mı? veya yöntem çağrısı? İlk girişimlerim bir Sabun Uzantısı ile uğraşmak, bir başlık (sabun veya html) eklemeyi ve uzantıdan hizmetin kendisine rasgele bir değer iletmemeyi içerir. Bütün girişimlerim başarısız oldu.

Geçerli günlüğe kaydetme durumumuzda, bir tablo için günlüğe kaydetme, başka bir tabloya yöntem/iş çağrıları ve aralarında hiçbir bağlantı olmadan başka bir tabloya yapılan istisnalar vardır. Zaman damgaları bazen yardımcı olabilir, ancak etkili hata ayıklama için yeterince güvenilir değildir. Şu anda .Net 2.0'da, yıl sonu itibari ile 3.5 kullanabilme potansiyeline sahibiz, bu yüzden yanıtlar 2.0 işlevselliğine tutulduğunda daha yararlı olacaktır.

Herhangi bir fikri olan var mı?

+0

görürseniz, ben de "Tam Denetim" olarak değiştirerek, günlük klasörü izinlerini güncelleştirmek zorunda kaldı. –

cevap

11

Kullanım wcf mümkün ve uygulamak mesajı günlüğü Baba'nın çözümüne ek olarak ... http://msdn.microsoft.com/en-us/library/ms730064.aspx

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
       <add name="messages" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="c:\logs\messages.svclog" /> 
      </listeners> 
     </source> 
    </sources> 
</system.diagnostics> 

<system.serviceModel> 
    <diagnostics> 
    <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="false" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog="3000" 
     maxSizeOfMessageToLog="2000"/> 
    </diagnostics> 
</system.serviceModel> 
+1

Çıktıyı analiz etmek için muhtemelen SvcTraceViewer programını kullanmak isteyeceksiniz. (Http://msdn.microsoft.com/en-us/library/ms732023.aspx#sectionSection1) – Henrik