2014-11-14 3 views
0

У меня возникла странная проблема после установки службы Windows.Установка Windows на сервер Windows 2012

Эта служба Windows будет вызывать метод отправки почты каждые 5 минут.

Я разработал службы Windows с помощью C# Visual Studio 2010.

После разработки я взял версию релиз сборки и установленной в моей системе (то есть ОС Windows 7), и она работает без каких-либо проблем.

Как только то же самое делается на сервере Windows 2012, тогда служба будет установлена, но после этого ничего не произойдет.

Я использовал System.Threading.Timer в настоящее время. Даже я пытался использовать System.Timers.Timer. Оба они будут работать в моей системе, но не будут работать на Сервере.

Я могу выслать код при необходимости.

private Timer IntervalTimer; 
protected override void OnStart(string[] args) 
{ 
     Server.WriteToLogFile("Windows Service started"); 
     int loopTime = 5; //Every 5 Minutes 
     Server.WriteToLogFile("Loop Time : " + loopTime.ToString()); 

     TimeSpan tsInterval = new TimeSpan(0, loopTime, 0); 
     IntervalTimer = new Timer(new TimerCallback(IntervalTimer_Elapsed), null, tsInterval, tsInterval); 
} 
private void IntervalTimer_Elapsed(object state) 
{ 
    Server.WriteToLogFile("Event Fired"); 
    Library library = new Library(); 
    library.Start(); 
} 
+0

Вы впервые проверили сервис, независимо от того, * он * начал *? – Kurubaran

+0

Да, после установки я запустил службу, и у меня есть logFile. Там также я нашел, что сервис запущен успешно, но после этого ничего не будет выполнено. –

+0

Кажется, вам придется отлаживать жесткий путь. Поместите весь код в блок Try Catch. Запись журнала событий после каждого утверждения. Вероятно, это даст вам подсказку. Также проверьте, есть ли проблемы с настройкой электронной почты. Любые проблемы с правами администратора? – NP3

ответ

0

В свойствах проекта -> вкладка сборки -> платформа Цель была - x86. Так что это давало мне ошибку на сервере Windows 2012, который имеет 64-битную ОС. Теперь я изменил его на anycpu, и он работал нормально.

Спасибо за ваши предложения.

0

Помимо целевой платформы существует также целевая структура важна. Если у вас есть приложение, ориентированное на версию 3.5, убедитесь, что на сервере включена функция .Net Framework 3.5. В противном случае вы можете столкнуться с трудностями распознавания цикла ошибок при попытке установить и запустить системный сервис.

0

В моем случае я должен удалить старые окна службы с помощью командной строки в режиме администратора с помощью:

SC DELETE <service name> 

затем восстановить приложение, как упоминаемый>> Nuthan Говда, и она работала.