VS 2013 Windows 서비스 와 디 버 깅 서 비 스 를 만 드 는 그림 방법

1.Windows 서비스 만 들 기


 

설명:
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 서비스 와 디 버 깅 서 비 스 를 만 드 는 데 관 한 모든 내용 입 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기