2012-04-04 2 views
-2

Я пытаюсь заставить службу Windows работать с использованием C++. Служба не делает ничего особенного @ в данный момент. Код, который запускает сервисWindows Service issue

int main(int argc, char** argv) { 

    if (argc != 1) return -1; 

    ofstream fTestFile; 
    fTestFile.open("C:\\ABC\\ServiceTest.txt", ios::app); 

    fTestFile << "argc=" << argc << endl; 
    for (int i=0;i <argc;i++) 
     fTestFile << "argv " << i << "=: " <<argv[i] << endl; 

    for (int i=0; i<100000; i++) { 
     fTestFile << i << ","; 
     if (i % 50 == 0) fTestFile << "\n"; 
     Sleep(10); 
    } 
    fTestFile << "\n"; 
    return 0; 
} 

Когда я нажмите кнопку «Пуск» с помощью services.msc на этой услуге, служба пытается начать, но не с (1053 ошибки Принимая слишком долго, чтобы ответить). В файле servicetest.txt я вижу некоторые данные, например, я вижу инструкции отладки, и я вижу цифры до 2663 или что-то в этом роде.

Есть ли какой-то шаг, который мне не хватает, любая помощь очень ценится.

Спасибо

+0

К сожалению, я имел в виду ошибку 1053 не 1503. – ababeel

+0

вы можете редактировать этот вопрос и исправить ошибку вы сделали. – Jasonw

+0

У вас больше возможностей для обслуживания, чем просто делать вещи в вашем 'main'. Вам необходимо зарегистрировать функцию управления сервисом и связаться с диспетчером управления сервисом. Сообщение об ошибке, которое вы видите, находится в диспетчере управления службами, который говорит: «Я запускал программу, но не отвечал на мои сообщения». –

ответ

0

Ваша служба должна связаться с менеджером по сервису (services.exe) сообщать и обновлять его текущее состояние.

Читать здесь http://msdn.microsoft.com/en-us/library/windows/desktop/ms687414%28v=vs.85%29.aspx

+0

Существует не просто функция 'ServiceMain()', вы должны иметь функцию main() ', инициализирующую службу и запускающую ее выполнение. –