我通过计算机管理MMC窗口建立新站点会启用ASP.NET2.0支持及其它权限配置,
但现在我想用mfc代码实现IIS站点自动配置,其它权限都已成功,只是ASP.NET2.0服务支持无法启用,
我的问题是:如何用vc++代码实现自动启动asp.net2.0支持?
哪位高手帮帮忙,将非常感谢!能实现功能即刻结帖。

解决方案 »

  1.   

    StartService给你个小例子
    DWORD StartSampleService() 

        SERVICE_STATUS ssStatus; 
        DWORD dwOldCheckPoint; 
        DWORD dwStartTickCount;
        DWORD dwWaitTime;
        DWORD dwStatus;
     
        schService = OpenService( 
            schSCManager,          // SCM database 
            "Sample_Srv",          // service name
            SERVICE_ALL_ACCESS); 
     
        if (schService == NULL) 
        { 
            MyErrorExit("OpenService"); 
        }
     
        if (!StartService(
                schService,  // handle to service 
                0,           // number of arguments 
                NULL) )      // no arguments 
        {
            MyErrorExit("StartService"); 
        }
        else 
        {
            printf("Service start pending.\n"); 
        }
     
        // Check the status until the service is no longer start pending. 
     
        if (!QueryServiceStatus( 
                schService,   // handle to service 
                &ssStatus) )  // address of status information structure
        {
            MyErrorExit("QueryServiceStatus"); 
        }
     
        // Save the tick count and initial checkpoint.    dwStartTickCount = GetTickCount();
        dwOldCheckPoint = ssStatus.dwCheckPoint;    while (ssStatus.dwCurrentState == SERVICE_START_PENDING) 
        { 
            // Do not wait longer than the wait hint. A good interval is 
            // one tenth the wait hint, but no less than 1 second and no 
            // more than 10 seconds. 
     
            dwWaitTime = ssStatus.dwWaitHint / 10;        if( dwWaitTime < 1000 )
                dwWaitTime = 1000;
            else if ( dwWaitTime > 10000 )
                dwWaitTime = 10000;        Sleep( dwWaitTime );        // Check the status again. 
     
            if (!QueryServiceStatus( 
                    schService,   // handle to service 
                    &ssStatus) )  // address of structure
                break; 
     
            if ( ssStatus.dwCheckPoint > dwOldCheckPoint )
            {
                // The service is making progress.            dwStartTickCount = GetTickCount():
                dwOldCheckPoint = ssStatus.dwCheckPoint;
            }
            else
            {
                if(GetTickCount()-dwStartTickCount > ssStatus.dwWaitHint)
                {
                    // No progress made within the wait hint
                    break;
                }
            }
        }     if (ssStatus.dwCurrentState == SERVICE_RUNNING) 
        {
            printf("StartService SUCCESS.\n"); 
            dwStatus = NO_ERROR;
        }
        else 
        { 
            printf("\nService not started. \n");
            printf("  Current State: %d\n", ssStatus.dwCurrentState); 
            printf("  Exit Code: %d\n", ssStatus.dwWin32ExitCode); 
            printf("  Service Specific Exit Code: %d\n", 
                ssStatus.dwServiceSpecificExitCode); 
            printf("  Check Point: %d\n", ssStatus.dwCheckPoint); 
            printf("  Wait Hint: %d\n", ssStatus.dwWaitHint); 
            dwStatus = GetLastError();
        } 
     
        CloseServiceHandle(schService); 
        return dwStatus;

      

  2.   

    我在Server版系统上测试时发现asp.net版本属性自动加上了默认版本(正是我需要的),而XP系统则是空白。也许是我的XP系统只允许建立一个站点的原因。将来主要是在服务器版系统上使用,对于单机版还需优化一下代码判断。谢谢几上各位大虾!这就准备结帖。