VS 2013 Windows 서비스 와 디 버 깅 서 비 스 를 만 드 는 그림 방법
5148 단어 디 버 깅 서비스VS2013Windows 서비스
설명:
a)서비스 설명 을 설명 하고 Windows 서비스 목록 에 있 는 설명 을 직접 표시 합 니 다.
b)DisplayName 서비스 가 이름 을 표시 하고 Windows 서비스 목록 의 이름 을 직접 표시 합 니 다.
c)서비스 Name 서비스 프로 세 스 이름,서 비 스 를 설치 하고 마 운 트 해제 할 때 유일한 표지 입 니 다.
"serviceProcessInstaller 1"을 누 르 면 속성 창 에 account 계 정 방식 을 설정 하고 LocalService 를 권장 합 니 다(물론 account 속성 을 Local System 으로 바 꿀 수도 있 습 니 다.그러면 어느 사용자 로 로그 인 하 는 시스템 이 든 서 비 스 는 항상 시 작 됩 니 다).
설치 및 마 운 트 해제 스 크 립 트 를 작성 하고 빈/debug 또는 빈/Release 폴 더 에 놓 습 니 다.
스 크 립 트 설치
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe %~dp0exe .exe
Net Start
sc config start= auto
pause
exe 프로그램의 이름 앞 에%~dp0 이 있 습 니 다.이것 은 현재 위 치 를 대표 합 니 다.서비스 이름 은 우리 가 서 비 스 를 만 들 때 ServerName 의 이름 에 대응 합 니 다.
스 크 립 트 마 운 트 해제
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u %~dp0exe .exe
pause
또한 본인 이 사용 하 는 NET 4.0 버 전 을 주의해 야 합 니 다.그래서\Microsoft.NET\Framework\v 4.0.30319\\installutil.exe 이 부분 은 당신 기계 에.NET 을 설치 한 버 전에 따라 정 해 야 합 니 다.사실 스 크 립 트 는 주로 installutil.exe 를 통 해 서 비 스 를 설치 하고 마 운 트 해제 하 는 동시에 일괄 처리 명령 이 많 지 않 습 니 다.
2.windows 서비스 디 버 깅
프로젝트 에 서 는 windows 서비스 항목 을 시작 하지 않 고 직접 프로 세 스 를 추가 하여 디 버 깅 을 진행 합 니 다.
사용 가능 한 프로 세 스에 서 방금 스 크 립 트 를 통 해 설 치 된 서 비 스 를 찾 으 면 됩 니 다.
서비스 코드 를 쓰 는 데모 하나 더 보 내 드 리 겠 습 니 다.
public partial class MMSServer : ServiceBase
{
private Timer time = new Timer();
public MMSServer()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
#if DEBUG
if (!Debugger.IsAttached)
Debugger.Launch();
Debugger.Break();
#endif
WriteLog(" , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
");
time.Elapsed += new ElapsedEventHandler(MethodEvent);
time.Interval = 3 * 1000;
time.Start();
}
protected override void OnPause()
{
#if DEBUG
if (!Debugger.IsAttached)
Debugger.Launch();
Debugger.Break();
#endif
WriteLog(" , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
");
base.OnPause();
}
protected override void OnContinue()
{
#if DEBUG
if (!Debugger.IsAttached)
Debugger.Launch();
Debugger.Break();
#endif
WriteLog(" , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
");
base.OnContinue();
}
protected override void OnShutdown()
{
WriteLog(" , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
");
base.OnShutdown();
}
private void MethodEvent(object source, System.Timers.ElapsedEventArgs e)
{
time.Enabled = false;
string result = string.Empty;
try
{
//.........
result = " , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
";
}
catch (Exception ex)
{
result = " , :" + ex.Message + "\r
";
}
finally
{
WriteLog(result);
time.Enabled = true;
}
}
protected override void OnStop()
{
#if DEBUG
if (!Debugger.IsAttached)
Debugger.Launch();
Debugger.Break();
#endif
WriteLog(" , :" + DateTime.Now.ToString("HH:mm:ss") + "\r
");
}
/// <summary>
///
/// </summary>
/// <param name="logInfo"></param>
private void WriteLog(string logInfo)
{
try
{
string logDirectory = AppDomain.CurrentDomain.BaseDirectory + "\\Logs";
if (!Directory.Exists(logDirectory))
{
Directory.CreateDirectory(logDirectory);
}
string filePath = logDirectory + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
File.AppendAllText(filePath, logInfo);
}
catch
{
}
}
}
이상 은 VS 2013 Windows 서비스 와 디 버 깅 서 비 스 를 만 드 는 데 관 한 모든 내용 입 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다.