namespace ApplicationForm
{
public partial class MainForm : Form
{
ResourceManager resMgr = null;
public MainForm()
{
InitializeComponent();
resMgr = new ResourceManager("ApplicationForm.Properties.Resources", Assembly.GetExecutingAssembly());
TestResourceString();
}
public void TestResourceString()
{
Debug.WriteLine(resMgr.GetString("IDS_MSG_DEBUG"));
}
}
}
일반적으로 프로세스를 종료하는 방법은 다음과 같다.
- ::FindWindow() 함수를 이용해 HWND 검색
- 해당 HWND가 유효한지 확인한 후 WM_CLOSE 메시지 전송
하지만, 위의 방법을 사용할 수 없거나 (ex. 윈도우가 없는 콘솔 어플리케이션),
즉시 프로세스를 종료해야 할 경우 프로세스 핸들을 얻은 후에 ::TerminateProcess() 함수를 이용한다.
그런데, TerminateProcess 함수를 사용할 경우, 강제 종료되는 프로세스가 사용하던 리소스에 대한 처리가 제대로 이루어지지 않는 문제가 있다.
그래서 사용할 수 있는 대안이, 해당 프로세스에 대해 Remote thread를 실행해서
ExitProcess 함수를 호출해주는 것.
자세한 내용은 아래 링크 참조.
Dr. Dobb's Journal - A Safer Anternative to TerminateProcess()
http://www.ddj.com/windows/184416547
http://forum.ultravnc.info/viewtopic.php?p=45372
결론은, DEP때문에 1SCDLL.dll이 제대로 동작하지 않는다는 것.
해결책은 아래 참조.
The solution that GF posted worked for me. Here is what I did.
1. Right Click on My Computer > Properties > Advanced > Performance > Settings > Data Execution Prevention Tab
2. Check: Turn on DEP for essential Windows programs and services only
3. Reboot
결론은, DEP때문에 1SCDLL.dll이 제대로 동작하지 않는다는 것.
해결책은 아래 참조.
The solution that GF posted worked for me. Here is what I did.
1. Right Click on My Computer > Properties > Advanced > Performance > Settings > Data Execution Prevention Tab
2. Check: Turn on DEP for essential Windows programs and services only
3. Reboot
내 나이 어느덧 서른 셋인데, 차가 없으니 주변인들이 다들 지랄지랄 해대서 드디어 면허를 따기로 했다.
하지만 가난한 회사원 주제인지라 80만원씩 내고 전문학원에 다닐 의지와 시간과 비용이 모두 부족한 상태.
그래서 주변에 알아본 결과, 30만원으로 운전면허를 딴 분이 계셔서 노하우를 전수받았다.
목표는 8월 중에 1종 보통 면허 취득.
오늘은 그 준비 절차.
○ 운전면허 정보 카페 가입
- http://cafe.naver.com/drivemaha.cafe (마하의 운전면허교실)
○ 기능시험 관련 자료 수집
하지만 가난한 회사원 주제인지라 80만원씩 내고 전문학원에 다닐 의지와 시간과 비용이 모두 부족한 상태.
그래서 주변에 알아본 결과, 30만원으로 운전면허를 딴 분이 계셔서 노하우를 전수받았다.
목표는 8월 중에 1종 보통 면허 취득.
오늘은 그 준비 절차.
○ 운전면허 정보 카페 가입
- http://cafe.naver.com/drivemaha.cafe (마하의 운전면허교실)
○ 기능시험 관련 자료 수집
DDoS 관련해서 얼마나 언론플레이를 해대는지.
솔직히 방통위는 기대도 안 했다.
미친 것들이 지금 미디어법 통과시키려고 혈안이 되어 있을 테니 DDoS에 관심이나 있겠냐고.
KISA 이것들도 결국 방통위 똥구녕이나 핥아주고 있는 것들이지만,
적어도 정보보호진흥원이라는 국가의 녹을 먹는 단체라면
이런 전 국가적인 위기 상황이 발생했을 때 일관되고 통합된 지휘체계를 갖추고 대응하는 모습을 보여줘야 하는 것 아닌가. 국민의 세금으로 운영되는 조직이라면 밥 값은 해야지.
결국 이번 DDoS 대응에서 KISA가 한 일이라고는
ISP에서 받은 숙주 서버 IP목록 다시 뿌리는 것 하고 언론플레이밖에 없네.
그 숙주 서버 IP라는 것이 flash.gif 파일을 배포하는 서버라는 것인데,
실제로 저 서버가 1분 단위로만 검사해도 몇 개씩 늘어나고 사라지고 하는 것은 왜 밝히지 않는지.
도대체가 언론 플레이나 했지.. 뭐 할 줄 아는 게 있어야지.
솔직히 방통위는 기대도 안 했다.
미친 것들이 지금 미디어법 통과시키려고 혈안이 되어 있을 테니 DDoS에 관심이나 있겠냐고.
KISA 이것들도 결국 방통위 똥구녕이나 핥아주고 있는 것들이지만,
적어도 정보보호진흥원이라는 국가의 녹을 먹는 단체라면
이런 전 국가적인 위기 상황이 발생했을 때 일관되고 통합된 지휘체계를 갖추고 대응하는 모습을 보여줘야 하는 것 아닌가. 국민의 세금으로 운영되는 조직이라면 밥 값은 해야지.
결국 이번 DDoS 대응에서 KISA가 한 일이라고는
ISP에서 받은 숙주 서버 IP목록 다시 뿌리는 것 하고 언론플레이밖에 없네.
그 숙주 서버 IP라는 것이 flash.gif 파일을 배포하는 서버라는 것인데,
실제로 저 서버가 1분 단위로만 검사해도 몇 개씩 늘어나고 사라지고 하는 것은 왜 밝히지 않는지.
도대체가 언론 플레이나 했지.. 뭐 할 줄 아는 게 있어야지.
기존에 복제 (게시 - 구독)을 수행했던 데이터베이스의 복제 기록이 완전히 삭제되지 않을 경우,
sp_repldone을 실행해도 "데이터베이스가 게시되지 않았습니다"라는 메시지를 표시된다.
이 경우, Transaction log를 Truncate하고자 할 때 아래 메시지를 표시하며 오류가 발생한다.
"로그 시작 부분의 레코드가 복제 보류 중이므로 로그가 잘리지 않았습니다.
로그 판독기 에이전트가 실행중인지 확인하거나 sp_repldone을 사용하여
트랜잭션이 분산된 것으로 표시하십시오."
이럴 때 해결방법은 당연하게도 "복제상태를 clear 하는 것"이 되겠다.
방법 1
1번 방법으로 해봤는데 잘 되더라.
sp_repldone을 실행해도 "데이터베이스가 게시되지 않았습니다"라는 메시지를 표시된다.
이 경우, Transaction log를 Truncate하고자 할 때 아래 메시지를 표시하며 오류가 발생한다.
"로그 시작 부분의 레코드가 복제 보류 중이므로 로그가 잘리지 않았습니다.
로그 판독기 에이전트가 실행중인지 확인하거나 sp_repldone을 사용하여
트랜잭션이 분산된 것으로 표시하십시오."
이럴 때 해결방법은 당연하게도 "복제상태를 clear 하는 것"이 되겠다.
방법 1
sp_configure 'allow', 1
go
reconfigure with override
go
update master..sysdatabases set category = category ^ 1 WHERE name = {DBNAME}
go
use {DBNAME}
go
UPDATE sysobjects set replinfo = 0
go
EXEC sp_repldone NULL, NULL, 0, 0, 1
go
UPDATE master..sysdatabases set category = category & ~1 WHERE name = {DBNAME}
go
BACKUP LOG {DBNAME} WITH TRUNCATE_ONLY
go
reconfigure with override
go
update master..sysdatabases set category = category ^ 1 WHERE name = {DBNAME}
go
use {DBNAME}
go
UPDATE sysobjects set replinfo = 0
go
EXEC sp_repldone NULL, NULL, 0, 0, 1
go
UPDATE master..sysdatabases set category = category & ~1 WHERE name = {DBNAME}
go
BACKUP LOG {DBNAME} WITH TRUNCATE_ONLY
방법 2
use {DBNAME}
go
sp_removedbreplication {DBNAME}
go
go
sp_removedbreplication {DBNAME}
go
1번 방법으로 해봤는데 잘 되더라.
Microsoft에서 만든 Packet capture & analysis application.
역시 버전 3이 넘어가야...
아래 링크 참조.
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=983b941d-06cb-4658-b7f6-3088333d062f
역시 버전 3이 넘어가야...
아래 링크 참조.
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=983b941d-06cb-4658-b7f6-3088333d062f


이올린에 북마크하기
Prev
Rss Feed