Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. [help]detect the status of iis server

[help]detect the status of iis server

Scheduled Pinned Locked Moved C / C++ / MFC
c++databasesysadminwindows-adminhelp
15 Posts 2 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rahuljin
    wrote on last edited by
    #1

    hello, i want to write a program in vc++ 2008 using win32 c which run on client and check the status of iis server. the status means ---- server is down or not, sql is working or not and iis is working or stopped. please guide me thanks rahul

    D 1 Reply Last reply
    0
    • R rahuljin

      hello, i want to write a program in vc++ 2008 using win32 c which run on client and check the status of iis server. the status means ---- server is down or not, sql is working or not and iis is working or stopped. please guide me thanks rahul

      D Offline
      D Offline
      David Crow
      wrote on last edited by
      #2

      Can you check the IIS service on that remote machine?

      "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

      "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

      R 1 Reply Last reply
      0
      • D David Crow

        Can you check the IIS service on that remote machine?

        "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

        "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

        R Offline
        R Offline
        rahuljin
        wrote on last edited by
        #3

        i dont know. i want to this project but i dont know much about it. i come to know that socket programming will be used for this project. actually i am totally new to windows programming but i have to summit this project soon or i will in big trouble. i am trying my best to learn it but time is less, work is more. i will learn windows programming in detail after this project because then i will have more time.

        D 1 Reply Last reply
        0
        • R rahuljin

          i dont know. i want to this project but i dont know much about it. i come to know that socket programming will be used for this project. actually i am totally new to windows programming but i have to summit this project soon or i will in big trouble. i am trying my best to learn it but time is less, work is more. i will learn windows programming in detail after this project because then i will have more time.

          D Offline
          D Offline
          David Crow
          wrote on last edited by
          #4

          rahuljin wrote:

          i will learn windows programming in detail after this project because then i will have more time.

          Famous last words. :rolleyes:

          "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

          "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

          R 1 Reply Last reply
          0
          • D David Crow

            rahuljin wrote:

            i will learn windows programming in detail after this project because then i will have more time.

            Famous last words. :rolleyes:

            "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

            "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

            R Offline
            R Offline
            rahuljin
            wrote on last edited by
            #5

            really, i know basic of c, c++, java, html\xhtml, vb, etc. this is the frist time i am doing the advance level programming. i want to learn asp .net but not know.

            D 1 Reply Last reply
            0
            • R rahuljin

              really, i know basic of c, c++, java, html\xhtml, vb, etc. this is the frist time i am doing the advance level programming. i want to learn asp .net but not know.

              D Offline
              D Offline
              David Crow
              wrote on last edited by
              #6

              rahuljin wrote:

              this is the frist time i am doing the advance level programming.

              It's not really an advanced topic as much as it is a specialized topic. See here for an idea.

              "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

              "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

              R 1 Reply Last reply
              0
              • D David Crow

                rahuljin wrote:

                this is the frist time i am doing the advance level programming.

                It's not really an advanced topic as much as it is a specialized topic. See here for an idea.

                "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                R Offline
                R Offline
                rahuljin
                wrote on last edited by
                #7

                thanks for the link. i have tried to write some code but it is not working. can u find the mistake i am making ? i want to find the status of the service "W3SVC", and when it is running, the program should print "Found" ---- #ifndef UNICODE #define UNICODE #endif #include <stdio.h> #include <assert.h> #include <windows.h> #include <lm.h> #include <tchar.h> #include <wchar.h> int wmain(int argc, wchar_t * argv[]) { LPSERVER_INFO_101 pBuf = NULL; LPSERVER_INFO_101 pTmpBuf; DWORD dwLevel = 101; DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwTotalCount = 0; DWORD dwServerType = SV_TYPE_SERVER; // all servers DWORD dwResumeHandle = 0; NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; LPTSTR pszDomainName = NULL; DWORD i; if (argc > 2) { fwprintf(stderr, L"Usage: %s [DomainName]\n", argv[0]); exit(1); } // The request is not for the primary domain. // if (argc == 2) pszDomainName = argv[1]; // // Call the NetServerEnum function to retrieve information // for all servers, specifying information level 101. // nStatus = NetServerEnum((LPCWSTR) pszServerName, dwLevel, (LPBYTE *) & pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries, dwServerType, (LPCWSTR) pszDomainName, &dwResumeHandle); // // If the call succeeds, // if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)) { if ((pTmpBuf = pBuf) != NULL) { // // Loop through the entries and // print the data for all server types. // for (i = 0; i < dwEntriesRead; i++) { assert(pTmpBuf != NULL); if (pTmpBuf == NULL) { fprintf(stderr, "An access violation has occurred\n"); break; } printf("\tPlatform: %d\n", pTmpBuf->sv101_platform_id); wprintf(L"\tName: %s\n", pTmpBuf->sv101_name); printf("\tVersion: %d.%d\n", pTmpBuf->sv101_version_major, pTmpBu

                D 1 Reply Last reply
                0
                • R rahuljin

                  thanks for the link. i have tried to write some code but it is not working. can u find the mistake i am making ? i want to find the status of the service "W3SVC", and when it is running, the program should print "Found" ---- #ifndef UNICODE #define UNICODE #endif #include <stdio.h> #include <assert.h> #include <windows.h> #include <lm.h> #include <tchar.h> #include <wchar.h> int wmain(int argc, wchar_t * argv[]) { LPSERVER_INFO_101 pBuf = NULL; LPSERVER_INFO_101 pTmpBuf; DWORD dwLevel = 101; DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwTotalCount = 0; DWORD dwServerType = SV_TYPE_SERVER; // all servers DWORD dwResumeHandle = 0; NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; LPTSTR pszDomainName = NULL; DWORD i; if (argc > 2) { fwprintf(stderr, L"Usage: %s [DomainName]\n", argv[0]); exit(1); } // The request is not for the primary domain. // if (argc == 2) pszDomainName = argv[1]; // // Call the NetServerEnum function to retrieve information // for all servers, specifying information level 101. // nStatus = NetServerEnum((LPCWSTR) pszServerName, dwLevel, (LPBYTE *) & pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries, dwServerType, (LPCWSTR) pszDomainName, &dwResumeHandle); // // If the call succeeds, // if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)) { if ((pTmpBuf = pBuf) != NULL) { // // Loop through the entries and // print the data for all server types. // for (i = 0; i < dwEntriesRead; i++) { assert(pTmpBuf != NULL); if (pTmpBuf == NULL) { fprintf(stderr, "An access violation has occurred\n"); break; } printf("\tPlatform: %d\n", pTmpBuf->sv101_platform_id); wprintf(L"\tName: %s\n", pTmpBuf->sv101_name); printf("\tVersion: %d.%d\n", pTmpBuf->sv101_version_major, pTmpBu

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #8

                  rahuljin wrote:

                  if ((QueryServiceStatus(hService, &ss) == SERVICE_RUNNING)||(QueryServiceStatus(hService, &ss) == SERVICE_START_PENDING)) printf("Found");

                  Should be:

                  if (QueryServiceStatus(hService, &ss) != FALSE)
                  {
                  if (ss.dwCurrentState == SERVICE_RUNNING || ss.dwCurrentState == SERVICE_START_PENDING)
                  printf("Found");
                  }

                  "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                  "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                  R 1 Reply Last reply
                  0
                  • D David Crow

                    rahuljin wrote:

                    if ((QueryServiceStatus(hService, &ss) == SERVICE_RUNNING)||(QueryServiceStatus(hService, &ss) == SERVICE_START_PENDING)) printf("Found");

                    Should be:

                    if (QueryServiceStatus(hService, &ss) != FALSE)
                    {
                    if (ss.dwCurrentState == SERVICE_RUNNING || ss.dwCurrentState == SERVICE_START_PENDING)
                    printf("Found");
                    }

                    "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                    "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                    R Offline
                    R Offline
                    rahuljin
                    wrote on last edited by
                    #9

                    thanks, it is working now. i will bother u soon if i stuck in something. one more thing i want to ask. currently i have only one computer so no network. will this program work on a network of computers too ? i cant check myself. suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ? also, if i have the ip address of the server then how to use it in this program ? thanks again :thumbsup: rahul update : when i make a try to make a array of processes like this -------

                    wchar_t selPro[] = { _T("W3SVC"), _T("Iisadmin")};

                    SC_HANDLE hService = OpenService(hSCM, selPro[j], SERVICE_QUERY_STATUS);

                    where j is for "for" lool (0,1). when i compile this code, compiling completes without any error and when i try to run it, it crashes. if i pass without array, it works fine. please guide me

                    modified on Saturday, June 13, 2009 5:05 PM

                    D 1 Reply Last reply
                    0
                    • R rahuljin

                      thanks, it is working now. i will bother u soon if i stuck in something. one more thing i want to ask. currently i have only one computer so no network. will this program work on a network of computers too ? i cant check myself. suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ? also, if i have the ip address of the server then how to use it in this program ? thanks again :thumbsup: rahul update : when i make a try to make a array of processes like this -------

                      wchar_t selPro[] = { _T("W3SVC"), _T("Iisadmin")};

                      SC_HANDLE hService = OpenService(hSCM, selPro[j], SERVICE_QUERY_STATUS);

                      where j is for "for" lool (0,1). when i compile this code, compiling completes without any error and when i try to run it, it crashes. if i pass without array, it works fine. please guide me

                      modified on Saturday, June 13, 2009 5:05 PM

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #10

                      rahuljin wrote:

                      will this program work on a network of computers too ?

                      That's what NetServerEnum() is for.

                      rahuljin wrote:

                      suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ?

                      First, did you try it? Second, did you check MSDN to see how OpenSCManager() handles its first argument?

                      rahuljin wrote:

                      also, if i have the ip address of the server then how to use it in this program ?

                      Convert the IP address to the host name using gethostbyaddr().

                      rahuljin wrote:

                      ...it crashes.

                      Meaning what? A "crash" is fairly meaningless.

                      "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                      "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                      R 1 Reply Last reply
                      0
                      • D David Crow

                        rahuljin wrote:

                        will this program work on a network of computers too ?

                        That's what NetServerEnum() is for.

                        rahuljin wrote:

                        suppose i run it on a client, will it give the info of server or all the computers in the network (clients + servers) ?

                        First, did you try it? Second, did you check MSDN to see how OpenSCManager() handles its first argument?

                        rahuljin wrote:

                        also, if i have the ip address of the server then how to use it in this program ?

                        Convert the IP address to the host name using gethostbyaddr().

                        rahuljin wrote:

                        ...it crashes.

                        Meaning what? A "crash" is fairly meaningless.

                        "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                        "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                        R Offline
                        R Offline
                        rahuljin
                        wrote on last edited by
                        #11

                        here is error from windows. it says "new01" has stopped working

                        Problem signature:
                        Problem Event Name: APPCRASH
                        Application Name: new01.exe
                        Application Version: 0.0.0.0
                        Application Timestamp: 4a349ab0
                        Fault Module Name: RPCRT4.dll
                        Fault Module Version: 6.1.7100.0
                        Fault Module Timestamp: 49eea681
                        Exception Code: c0000005
                        Exception Offset: 0002f3b0
                        OS Version: 6.1.7100.2.0.0.256.1
                        Locale ID: 16393
                        Additional Information 1: 0a9e
                        Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
                        Additional Information 3: 0a9e
                        Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

                        Read our privacy statement online:
                        http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

                        If the online privacy statement is not available, please read our privacy statement offline:
                        C:\Windows\system32\en-US\erofflps.txt

                        here is the complete code of the program ----

                        // setting unicode

                        #ifndef UNICODE
                        #define UNICODE
                        #endif

                        // header files
                        #include <stdio.h>
                        #include <assert.h>
                        #include <windows.h>
                        #include <lm.h>
                        #include <tchar.h>
                        #include <wchar.h>

                        void printServer(LPSERVER_INFO_101 ppTmpBuf, DWORD ddwEntriesRead)
                        {
                        SC_HANDLE hSCM;
                        SERVICE_STATUS ss;
                        DWORD i;
                        short int j, x;
                        x = 2;
                        wchar_t* prName[] = {

                                            \_T("W3SVC"), 
                                            \_T("Themes")
                                            
                                            };
                        
                        for (i = 0; i < ddwEntriesRead; i++) 
                        {
                            for(j=0; j<x ; j++)
                            {
                                hSCM = OpenSCManager((LPCTSTR) ppTmpBuf->sv101\_name,
                                    NULL, SC\_MANAGER\_CONNECT);
                                if (hSCM != NULL)
                                {
                                    SC\_HANDLE hService = OpenService(hSCM, prName\[j\], SERVICE\_QUERY\_STATUS);
                                    if (hService != NULL)
                                    {                   
                                        if (QueryServiceStatus(hService, &ss) != FALSE)
                                        {
                                            if ((ss.dwCurrentState == SERVICE\_RUNNING)||(ss.dwCurrentState == SERVICE\_START\_PENDING))
                                                wprintf(\_T("%-20s %-15s This service is running.\\n"),ppTmpBuf->sv101\_name, prName\[j\]);
                                            else 
                                                wprintf(\_T("%-20s %-15s This service is stopped or not found.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); 
                                        }
                                        CloseServiceHandle(hService);
                                    }
                        
                        D 1 Reply Last reply
                        0
                        • R rahuljin

                          here is error from windows. it says "new01" has stopped working

                          Problem signature:
                          Problem Event Name: APPCRASH
                          Application Name: new01.exe
                          Application Version: 0.0.0.0
                          Application Timestamp: 4a349ab0
                          Fault Module Name: RPCRT4.dll
                          Fault Module Version: 6.1.7100.0
                          Fault Module Timestamp: 49eea681
                          Exception Code: c0000005
                          Exception Offset: 0002f3b0
                          OS Version: 6.1.7100.2.0.0.256.1
                          Locale ID: 16393
                          Additional Information 1: 0a9e
                          Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
                          Additional Information 3: 0a9e
                          Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

                          Read our privacy statement online:
                          http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

                          If the online privacy statement is not available, please read our privacy statement offline:
                          C:\Windows\system32\en-US\erofflps.txt

                          here is the complete code of the program ----

                          // setting unicode

                          #ifndef UNICODE
                          #define UNICODE
                          #endif

                          // header files
                          #include <stdio.h>
                          #include <assert.h>
                          #include <windows.h>
                          #include <lm.h>
                          #include <tchar.h>
                          #include <wchar.h>

                          void printServer(LPSERVER_INFO_101 ppTmpBuf, DWORD ddwEntriesRead)
                          {
                          SC_HANDLE hSCM;
                          SERVICE_STATUS ss;
                          DWORD i;
                          short int j, x;
                          x = 2;
                          wchar_t* prName[] = {

                                              \_T("W3SVC"), 
                                              \_T("Themes")
                                              
                                              };
                          
                          for (i = 0; i < ddwEntriesRead; i++) 
                          {
                              for(j=0; j<x ; j++)
                              {
                                  hSCM = OpenSCManager((LPCTSTR) ppTmpBuf->sv101\_name,
                                      NULL, SC\_MANAGER\_CONNECT);
                                  if (hSCM != NULL)
                                  {
                                      SC\_HANDLE hService = OpenService(hSCM, prName\[j\], SERVICE\_QUERY\_STATUS);
                                      if (hService != NULL)
                                      {                   
                                          if (QueryServiceStatus(hService, &ss) != FALSE)
                                          {
                                              if ((ss.dwCurrentState == SERVICE\_RUNNING)||(ss.dwCurrentState == SERVICE\_START\_PENDING))
                                                  wprintf(\_T("%-20s %-15s This service is running.\\n"),ppTmpBuf->sv101\_name, prName\[j\]);
                                              else 
                                                  wprintf(\_T("%-20s %-15s This service is stopped or not found.\\n"),ppTmpBuf->sv101\_name, prName\[j\]); 
                                          }
                                          CloseServiceHandle(hService);
                                      }
                          
                          D Offline
                          D Offline
                          David Crow
                          wrote on last edited by
                          #12

                          So where's the problem?

                          "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                          "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                          R 1 Reply Last reply
                          0
                          • D David Crow

                            So where's the problem?

                            "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                            "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                            R Offline
                            R Offline
                            rahuljin
                            wrote on last edited by
                            #13

                            when i remove the following statements from the program, program run without any error.

                            NetApiBufferFree(ppTmpBuf);
                            NetApiBufferFree(pTmpBuf);

                            what may be the problem with this ?

                            D 1 Reply Last reply
                            0
                            • R rahuljin

                              when i remove the following statements from the program, program run without any error.

                              NetApiBufferFree(ppTmpBuf);
                              NetApiBufferFree(pTmpBuf);

                              what may be the problem with this ?

                              D Offline
                              D Offline
                              David Crow
                              wrote on last edited by
                              #14

                              rahuljin wrote:

                              what may be the problem with this ?

                              It appears you are freeing the same memory three times.

                              "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                              "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                              R 1 Reply Last reply
                              0
                              • D David Crow

                                rahuljin wrote:

                                what may be the problem with this ?

                                It appears you are freeing the same memory three times.

                                "Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown

                                "Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons

                                R Offline
                                R Offline
                                rahuljin
                                wrote on last edited by
                                #15

                                yes, that may be the reason for the program crash. is there a way to access from a client if it have minimum access ? i mean that the client can access only a few folder in the other pc. also when i try this program on xp OS system, it gives the error --- NetQueryDisplayInformation gave error ERROR_ACCESS_DENIED. Due to this error, it does not display the status of service even of the system it is running on. it is a client pc. though i can ping the ip of other computers in the network. is there any remedy for this ?

                                modified on Tuesday, June 16, 2009 3:50 AM

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups