Служба WCF и окна
Я новичок в WCF. У меня есть сценарий, когда мне нужно создать приложение, которое запускает 24x7, собирает почту из почтового ящика и создает несколько отчетов. Я сделал это с помощью winform, и это сработало. Но у меня возникла проблема, сервер, на котором было размещено приложение, имеет политику автоматического выхода из системы, которая закрывает мое приложение, когда сервер неактивен в течение определенного периода времени. Я думал, что смогу реализовать его как услугу окна. Для этого сценария рекомендуется использовать службу WCF, любое преимущество используя его. Я думал о службе WCF, так как он будет учиться кривой для меня. Пожалуйста, совет.
Обновление:
его приложение, которое работает на основе таймера. Он каждый месяц отправляет конкретный почтовый ящик, чтобы увидеть новую почту. Если новая почта найдена, она загружает Excel, который создает отчет PDF и отправляет его обратно на некоторые идентификаторы электронной почты.
Используемые DLLS: OpenPOP и Itextsharp.
Ответы
Ответ 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 будет неактивной в конечном счете, из-за политику).