System.ServiceProcess 네임스페이스는 Windows 서비스 응용 프로그램을 구현, 설치 및 제어할 수 있는 클래스를 제공합니다. 서비스는 사용자 인터페이스 없이 실행되는 장기 실행 파일입니다. 서비스 구현은 ServiceBase 클래스에서 상속 및 시작, 중지, 일시 중지, 계속 명령이 전달될 때 처리할 특정 동작 정의뿐만 아니라 시스템이 종료될 때 적용할 사용자 지정 동작과 작업 정의를 포함합니다.
서비스는 InstallUtil.exe와 같은 설치 유틸리티를 사용하여 설치하며 System.ServiceProcess 네임스페이스는 레지스트리에 서비스 정보를 기록하는 설치 클래스를 제공합니다. ServiceProcessInstaller 클래스는 설치할 때 모든 서비스에 공통되는 구성 요소를 설치하는 포함 클래스를 제공하며 각 서비스에 대해 ServiceInstaller 클래스 인스턴스를 만들어 서비스 관련 기능을 설치합니다.
ServiceController 클래스를 사용하면 기존 서비스에 연결하여 해당 서비스를 조작하거나 해당 서비스에 대한 정보를 얻을 수 있습니다. 일반적으로 이 클래스는 관리 목적으로 사용되며 서비스를 시작, 중지, 일시 중지 및 계속할 수 있으며 서비스에 대한 사용자 지정 명령을 수행할 수 있습니다. ServiceBase 클래스에서 명령에 따라 서버스에서 수행하는 프로세스를 정의할 경우 ServiceController 는 서비스에서 해당 명령을 호출할 수 있는 에이전트입니다.
클래스
|
클래스 |
설명 |
|
서비스 응용 프로그램의 일부로 존재할 서비스에 기본 클래스를 제공합니다. ServiceBase 는 새 서비스 클래스를 만들 때 파생되어야 합니다. | |
|
Windows 서비스를 나타내며 이 클래스를 사용하면 실행중이거나 중지된 서비스에 연결하거나 서비스를 조작하거나 서비스 관련 정보를 가져올 수 있습니다. | |
|
서비스 컨트롤러의 코드 액세스 보안 권한을 제어할 수 있습니다. | |
|
선언적 서비스 컨트롤러 권한을 확인할 수 있습니다. | |
|
ServiceController에 설정된 코드 액세스 보안 권한의 최소 단위를 정의합니다. | |
|
강력한 형식의 ServiceControllerPermissionEntry 컬렉션을 포함합니다. | |
|
ServiceBase를 확장하는 클래스를 설치하여 서비스를 구현합니다. 이 클래스는 서비스 응용 프로그램을 설치할 때 설치 유틸리티에서 호출됩니다. | |
|
속성 또는 이벤트에 대한 설명을 지정합니다. | |
|
ServiceBase를 확장하는 클래스가 포함된 실행 파일을 설치합니다. 이 클래스는 서비스 응용 프로그램을 설치할 때 설치 유틸리티(예: InstallUtil.exe)에서 호출됩니다. | |
|
지정된 시간이 만료될 때 throw되는 예외입니다. |
열거형
|
열거형 |
설명 |
|
시스템의 전원 상태를 나타냅니다. | |
|
서비스의 로그온 형식을 정의하는 서비스 보안 컨텍스트를 지정합니다. | |
|
ServiceController 권한 클래스에 사용되는 액세스 수준을 정의합니다. | |
|
서비스의 현재 상태를 나타냅니다. | |
|
서비스의 시작 모드를 나타냅니다. | |
|
서비스 종류를 나타냅니다. |
그런데 이거왠걸?? 스크립트에는 Trim()이 없단말인가??
자바스크립트에서는 Trim을 조금 다르게 사용하나보다 생각하고 인터넷 검색을 해보았다
오잉? 여기 저기 존재하지 않는가는 내용뿐이다..
다른 개발자들은 어떻게 해결했나 찾아보니 다들 Trim기능을 정규식으로 만들어서 사용하고 있었다.
그래서 도움이 될까하고 자바스크립트로 구현한 트림기능을 올려본다.
<script type="text/javascript" language="javascript">
// Trim 기능을 위한 함수1
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/gi, "");
}
// Trim 기능을 위한 함수2
String.prototype.trim = function(){
return this.replace(/(^[ \f\n\r\t]*)|([ \f\n\r\t]*$)/g, "");
}
</script>
정규식 소개 (MSDN)
━━━━━━━━━━━━━━━
by 한상국(han3925)
MAIL han3925@gmail.com
han3925@hotmail.com
BLOG pointnet.tistory.com
━━━━━━━━━━━━━━━
※ 단 클라이언트 에서는 서버에있는 도움말 파일을 읽을수 없다.
즉, chm파일을 로컬에 가지고 있어야한다.
* 프로세스 실행
System.Diagnostics.Process.Start("chm 파일 경로");
* 프로세스에 속성을 추가할수있음(우선순위 설정등) 아래 맴버를 참조하세요
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("chm 파일 경로");
startInfo.CreateNoWindow = true;
System.Diagnostics.Process.Start(startInfo);
System.Diagnostics.ProcessStartInfo 멤버
chm 파일 생성에대해 알고싶으면 "Sandcastle" 란키워드로 검색을 해보면 될것이다.
━━━━━━━━━━━━━━━
by 한상국(han3925)
MAIL han3925@gmail.com
han3925@hotmail.com
BLOG pointnet.tistory.com
━━━━━━━━━━━━━━━
서버 컨트롤은 runat=“server“ 폼안에 존재해야하기때문에 코드비하인드단에서 처리해주면 됩니다.
아니면 랜더링 되면서 오류를 발생시키죠..
-- 디자인 소스
<table border="1" runat="server">
<tr>
<td id="td1">
</td>
<td id="td2">
</td>
</tr>
</table>
-- cs 단 소스
ListBox lb = new ListBox();
Button bt = new Button();
bt.Text = "서버 컨트롤";
td1.Controls.Add(lb);
td2.Controls.Add(bt);
━━━━━━━━━━━━━━━
by 한상국(han3925)
MAIL han3925@gmail.com
han3925@hotmail.com
BLOG pointnet.tistory.com
━━━━━━━━━━━━━━━
<title>제목 없음</title>
<script type="text/javascript" language="javascript">
// value값에 사용할 Index
var cnt = 0;
// 동적으로 버튼을 생성해주는 function
function Create()
{
// 버튼 객체 생성
var obj = document.createElement("<input type='button' value='확인"+cnt+"' onclick='View(this)' />");
// 변수 증가
cnt++;
// dv영역에 해당 객체 추가
dv.appendChild(obj);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="dv">
</div>
<input type="button" value="버튼추가" onclick="Create()"/>
</form>
</body>
━━━━━━━━━━━━━━━
by 한상국(han3925)
MAIL han3925@gmail.com
han3925@hotmail.com
BLOG pointnet.tistory.com
━━━━━━━━━━━━━━━



