Подтвердить что ты не робот

Служба WCF и окна

Я новичок в WCF. У меня есть сценарий, когда мне нужно создать приложение, которое запускает 24x7, собирает почту из почтового ящика и создает несколько отчетов. Я сделал это с помощью winform, и это сработало. Но у меня возникла проблема, сервер, на котором было размещено приложение, имеет политику автоматического выхода из системы, которая закрывает мое приложение, когда сервер неактивен в течение определенного периода времени. Я думал, что смогу реализовать его как услугу окна. Для этого сценария рекомендуется использовать службу WCF, любое преимущество используя его. Я думал о службе WCF, так как он будет учиться кривой для меня. Пожалуйста, совет.

Обновление: его приложение, которое работает на основе таймера. Он каждый месяц отправляет конкретный почтовый ящик, чтобы увидеть новую почту. Если новая почта найдена, она загружает Excel, который создает отчет PDF и отправляет его обратно на некоторые идентификаторы электронной почты.

Используемые DLLS: OpenPOP и Itextsharp.

4b9b3361

Ответ 1

Служба Windows - это то, что вам нужно.

WCF - это библиотека связи, и если вы не планируете общаться с вашим приложением через клиента, вам это не нужно.

Ваша проблема связана с активацией, а сохранение вашего кода в фоновом режиме - это то, что делают службы Windows.

Это не сложно, это поможет вам начать работу.

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

Ответ 2

WCF полезен, если вы используете веб-сервис. Просто нормальный сервис Windows должен удовлетворить ваши потребности здесь. Пока машина работает, обслуживание должно продолжаться.

Ответ 3

Если ваше приложение делает то, что вы хотите, и работает нормально до тех пор, пока сервер не будет активен, вам следует решить проблему, настроив сервер на неактивное состояние.

Другими словами, поскольку сам сервер никогда не должен переходить в режим ожидания (неактивный), я предполагаю, что политика, о которой вы говорите, реализуется только для неактивных пользователей - политика, вероятно, (и не должна) влиять пользователей системного уровня.

Итак, если вы должны запускать свое приложение в качестве пользователя системы (или пользователя сети), проблема должна исчезнуть.

Основываясь на ваших объяснениях, WCF не подходит для решения вашей проблемы по двум причинам:

  • WCF полезен, когда у вас есть другое приложение (клиент), которое потребляет службу WCF). Это не похоже на то, что вам требуется клиент/серверная служба в вашем приложении.
  • Если вы запустить службу WCF, как тот же пользователь, как текущее приложение работает под землей, ваша проблема будет по-прежнему существует (то есть служба WCF будет неактивной в конечном счете, из-за политику).