기본적으로 특정 디렉토리에서 zip 파일을 검색 한 다음 FTP 서버에 업로드하는 Windows 서비스를 작성합니다. txt 파일에 쓰고 모든 로그를 유지하는 추적 방법을 추가했습니다. 프로세스가 파일 '를 액세스 할 수 없습니다 문제는 내가 창문으로 서비스를 놓을 때 나는 이벤트 뷰어에서 오류 메시지 (나는은 EventLog 클래스를 사용하여 LOGEVENT 추가)FileStream 및 StreamWriter를 사용하여 LogFile을 쓰려고하는 예외
System.IO.IOException을 반환을받을 온다 C : \ Windows \ system32 \ traceLog.txt '입니다. 다른 프로세스에서이 파일을 사용하고 있기 때문입니다.
추적을 수행하는 코드는 다음
private void EscribirTrace(string mensaje)
{
if (Tracing)
{
try
{
using (FileStream archivo2 = new FileStream(string.Format("{0}\\traceLog.txt", Environment.CurrentDirectory), FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
{
mensaje = string.Format("{0} - {1} \r\n", DateTime.Now, mensaje);
StreamWriter writer = new StreamWriter(archivo2);
writer.WriteLine(mensaje);
writer.Flush();
writer.Dispose();
}
}
catch (Exception ex)
{
LogEvent("Error en escribir tracing", ex);
}
}
}
어떤 아이디어가
을 감상 할 수있다편집 그래서 몇 가지 조사 후 그 system32를가에 가장 적합한 장소가 아니다는 것을 알 파일. 내 의도는 서비스가 설치된 경로에 해당 로그 파일을 저장하는 것이 었습니다. 몇 가지 조사 후 나는 문자열로 포맷 된
Path.GetFullPath(System.Reflection.Assembly.GetExecutingAssembly().Location).Replace(
Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location)
의
Enviroment.CurrentDirectory
를 교체했다.
나머지는 꽤 잘 작동했습니다.
감사합니다.
프로그램에 system32에 쓸 수있는 권한이 있습니까? 예를 들어 데스크탑에 작성하면 어떻게됩니까? – Ragnagord