윈도우 서비스와 응용 프로그램 간의 자원공유

toctech의 이미지

안녕하세요,

.exe 파일을 실행시켰던 기존의 서버 프로그램을
서비스로 등록해야 할 일이 생겼습니다.

기존 서버의 시스템은,
1. 클라이언트의 요청을 처리하는 서버,
2. 서버의 상태를 체크하여 화면에 보여주는 GUI (송/수신 갯수 등),
3. 두 프로세스간의 통신을 위해 공유 자원으로 쓰이는 DLL
이렇게 세개로 구성되어있었습니다.

그런데, 1. 번을 서비스로 등록한 뒤에,
공유 자원으로 쓰이는 DLL을 통해서 서버 상태를 2. 번에 알려주는 부분이
도통 되지를 않네요.

이것저것 찾아보다가, 서비스로 실행시킨 서버에서 디버그 메시지(OutputDebugString)를 찍은 뒤,
DebugView에서 확인하기 위해서는 Capture>Capture Global Win32 를 체크해야 한다는 것 까지는 알았는데,
Win32와 Global Win32는 다른건가요? (무슨 차이가 있는건가요?)

혹시, 서비스와 응용 프로그램 간의 통신을 위한 방식으로 공유 DLL을 사용하는 것은 잘못된 설계인가요?
만약에 그렇지 않다면, DLL을 통한 자원의 공유가 왜 이뤄지지 않는 걸까요...;;;
으.. 답답한 마음에 여쭤봅니다.

coathanger의 이미지

service.mmc에서 해당 서비스 프로그램의 로그온 속성을 interactive service 허용을 체크 해보세요.

서비스의 장점이라고 한다면 로그온 전에 프로그램이 동작한다에 있고, 성능적인 측면도.. 있죠..

일반 프로그램과의 차이점은.. 위 로그온 전에 실행된다는 것에 있습니다.
일반 프로그램과 달리 서비스 프로그램은 window station이 달라 제한이 있습니다.

UI로 메세지 보내려면.. FindWindow로 메세지를 보내서 처리 해야 하는 점도 있죠. 물론 이 때도 서비스 상호 작용 체크가 되어있어야 서로 메세지를 주고 받을 수 있습니다.

자세한 사항은 winsta0, 서비스 상호작용(Allow service to interact with desktop)을 키워드로 검색 해 보시면 도움이 될 듯 합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.