2010-06-24 4 views
1

IIS 6에서 IIS 7로 사이트를 마이그레이션하려고하는데 모든 로그를 볼 수 없습니다.IIS 7에 배포 할 때 진단 추적 로깅이 작동하지 않습니다.

<system.diagnostics> 
    <trace autoflush="true"></trace> 
    <sources> 
    <source name="Assembly1" switchValue="All"> 
     <listeners> 
     <add name="DiagnosticMessageTraceListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      traceOutputOptions="ProcessId, ThreadId, DateTime" 
      initializeData="E:\Inetpub\logs\App\Assembly1.log" /> 
     </listeners> 
    </source> 
    <source name="Assembly2" switchValue="All"> 
     <listeners> 
     <add name="DiagnosticMessageTraceListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      traceOutputOptions="ProcessId, ThreadId, DateTime" 
      initializeData="E:\Inetpub\logs\App\Assembly2.log" /> 
     </listeners> 
    </source> 
    <source name="Assebly3" switchValue="All"> 
     <listeners> 
     <add name="DiagnosticMessageTraceListener" 
      type="System.Diagnostics.TextWriterTraceListener" 
      traceOutputOptions="ProcessId, ThreadId, DateTime" 
      initializeData="E:\Inetpub\logs\App\Assembly3.log" /> 
     </listeners> 
    </source> 
    <source name="System.ServiceModel" switchValue="All" propagateActivity="true"> 
     <listeners> 
     <add name="DiagnosticMessageTraceListener" 
      type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData="E:\Inetpub\logs\App\ServiceTrace.svclog" /> 
     </listeners> 
    </source> 
    <source name="System.ServiceModel.MessageLogging" switchValue="All"> 
     <listeners> 
     <add name="DiagnosticMessageTraceListener" 
      type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData="E:\Inetpub\logs\App\ServiceMessages.svclog" /> 
     </listeners> 
    </source> 
    </sources> 
    <switches> 
    <add name="System.Net" value="Verbose" /> 
    <add name="System.Net.Sockets" value="Verbose" /> 
    </switches> 
</system.diagnostics> 

을 내가 로컬 응용 프로그램 내 모든 로그 파일을 얻을 ASP.Net 웹 서버 또는 로컬 IIS를 사용하여 실행하면 다음과 같이 내 열고 System.Diagnostics 구성이다. 일단 응용 프로그램이 IIS 7에 배포되면 System.ServiceModel 로그 만받습니다. 디렉토리가 존재하고 모든 사람에게 전적인 권한을 부여했음을 확인했습니다. 또한 로그를 플러시하도록 강제로 서비스와 사이트를 다시 시작했습니다. 나는이 일을 로그 아웃하기 위해 무엇인가를 시도해 왔기 때문에 Tracing and Logging Tools 역할 서비스도 설치했다. 여전히 응용 프로그램 로그를받지 못합니다.

또한 추적 로그 파일 대신 EventLog에 기록한 구현을 시도했습니다. 이것은 또한 동일한 행동을 보였다. 로컬 IIS 및 실제 IIS에 배포 할 때 작동하지만 실제 서버에 배포 할 때는 작동하지 않습니다. 응용 프로그램 로그에 기록한 IIS7 컴퓨터에서 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ Application에 대한 모든 권한을 부여했습니다.

내가 여기 뭔가를 놓친 것 같습니다. IIS 7에서 배포 할 때이 두 가지 로깅 구현에서 정보를 얻을 수 없습니다. 여기서도 공통점이 무엇인지 확신 할 수 없습니다. EventLog.WriteEntry와 Trace.TraceEvent는 모두 WCF를 사용합니까?

답변

2

모두가 E에 전체 액세스 권한이 보자 : \를 Inetpub \ 로그 \ 응용 프로그램 다른 권한 문제에 대해

\ IIS에 대한 사용자 계정에 7 명 변경,

http://learn.iis.net/page.aspx/110/changes-between-iis-60-and-iis-7-security/

내용
+2

렉스 리의 대답은 작동 시도하지만, 보안 위험, 그리고 폴더에 너무 많은 액세스를 제공합니다. 이 기사를 확인하십시오 http://stackoverflow.com/questions/18793727/system-diagnostics-trace-not-working-in-web-app-under-applicationpoolidentity – user3670255

+0

추적을 오랫동안 유지하면 안됩니다. 추적을 완료하면 로그 폴더를 완전히 제거 할 수 있습니다. –

0

당신은있을 수 있습니다 더 많은 기쁨은 Inetpub 디렉토리에서 로그 파일을 옮깁니다. 비록 IIS 풀 사용자에 대한 올바른 권한을 설정 했음에도 분명히했습니다.

<initializeData="E:\logs\Apps\ServiceTrace.svclog" />

관련 문제