2017-11-20 12 views
0
내 MVC 5 응용 프로그램의 실행을 추적 할 필요가

에서 작동하지 않습니다, 그래서 난이 추가되었습니다 : 는 프로덕션 서버

<system.diagnostics> 
    <trace autoflush="true" indentsize="4" /> 
    <sources> 
     <source name="mySource" switchValue="Information" switchType="System.Diagnostics.SourceSwitch"> 
     <listeners> 
      <add name="sdt" type="System.Diagnostics.XmlWriterTraceListener" initializeData= "C:\inetpub\wwwroot\website\trace.log" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

그리고 코드

, 나는 다음을 추가했다 :

public static TraceSource _trace = new TraceSource("mySource"); 

_trace.TraceInformation("Tracing messages"); 

프로덕션 서버에는 아무런 문제가 없다는 것이 문제이다. 로그 파일도 생성되지 않습니다.

흥미로운 점은 릴리스 빌드를 사용하여 내 개발 PC에서 작동한다는 것입니다. 웹 사이트는 TRACE 상수를 사용하여 컴파일되었습니다.

프로덕션 서버에는 IIS 8.5가 있고 내 PC에는 IISEXPRESS가 사용됩니다. 그것은 유일한 차이점입니다.

도움이 필요하십니까?

+1

ACL 문제 일 수 있습니다. 로그 파일 위치를'c : \ temp \ trace.log'와 같이 변경해 보셨습니까? 또는 C : \ inetpub \ wwwroot \ website의 보안 설정을보고 MVC 응용 프로그램이 실행중인 사용자와 비교해보십시오. – spodger

+0

당신이 옳았다 ... IIS_APPPOOL 사용자를 모든 권한을 가진 폴더에 추가하고 추적을 저장했습니다. – jstuardo

+0

IIS 사용자가 웹 응용 프로그램의 루트를 완전히 제어하지 않아야 사이트가 훨씬 쉽게 손상됩니다. . 그 위에 로그 파일을 공개적으로 액세스 할 수있는 위치에 기록합니다. 대신, 당신은 하위 폴더 또는 귀하의 응용 프로그램 중 하나에 쓰기를해야만 IIS 사용자에게 제어권을 주거나 (또는 ​​읽기/쓰기/수정 만 가능) 웹 루트 외부에서 쓰기를 허용하고 로그를 작성하는 것이 좋습니다 거기에 파일. –

답변

1

ACL 문제 일 수 있습니다.

C : \ inetpub \ wwwroot \ website의 보안 설정을 확인하고 MVC 응용 프로그램이 실행되고있는 사용자와 비교하십시오.