2008-09-26 7 views
7

Idealną sytuacją do zalogowania się w naszym serwisie internetowym byłoby zarejestrowanie wszystkich wywołań metod (uwierzytelnianie oraz dostęp do danych) z przekazanymi im parametrami, a także błędami, które mogły wystąpić i są połączone jednym identyfikatorem, który kojarzy je z tym samym wywołaniem. Ponadto, chciałbym mieć możliwość kontrolowania, czy wszystkie parametry są rejestrowane, czy tylko wywołanie metody jest rejestrowane. Chciałbym móc kontrolować, czy wszystkie loginy są zalogowane, czy tylko te, które się nie udało. Ponownie, wszystkie informacje wyszukane w jednym żądaniu zostaną połączone razem za pomocą id (guid lub w inny sposób).. Rejestracja usługi .NET w sieci Web

To jest moja idealna sytuacja wyrębu. Jeśli ktoś wie, jak to wszystko wdrożyć i byłby skłonny przenieść się do Manchester, NH area ...;)

Ale czy ktoś naprawdę wie, w jaki sposób podjąłbym się związanie z żądaniem usługi sieciowej otrzymanym z powodu błędu, lub wywołanie metody? Moje początkowe próby polegają na rozmyślaniu w rozszerzeniu mydła, próbowaniu dodania nagłówka (mydła lub html) i czego nie wolno przekazywać arbitralnej wartości z rozszerzenia do samej usługi. Wszystkie moje próby się nie powiodły.

Nasza obecna sytuacja rejestrowania ma rejestrację uwierzytelniania do jednej tabeli, wywołania metody/działalności do innej tabeli i rejestrowanie wyjątków do innej tabeli bez wzajemnego połączenia między nimi. Znaczniki czasu są czasami pomocne, ale niewystarczająco niezawodne, aby skutecznie debugować. Aktualnie korzystamy z .Net 2.0 z potencjałem do używania 3.5 przed końcem roku, więc byłoby bardziej pomocne, gdyby odpowiedzi były przechowywane w wersji 2.0.

Ktoś ma jakieś pomysły?

+0

... oprócz rozwiązania Clausa, miałem również zaktualizować uprawnienia dla folderu dziennika, zmieniając je na „Full Control”. –

Odpowiedz

11

użycie WCF jeśli możliwe rejestrowanie i wdrożenie wiadomość zobaczyć 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

Prawdopodobnie będziesz chciał użyć programu SvcTraceViewer do analizy wyników. (http://msdn.microsoft.com/en-us/library/ms732023.aspx#sectionSection1) – Henrik