помогите с созданием windows server - PullRequest
1 голос
/ 03 октября 2010

Я программист ASP.NET и не имею опыта в создании служб Windows.Сервис, который мне нужно создать, должен отправлять электронные письма нашим клиентам каждый указанный период времени.Эта служба должна решить проблему, когда сотни электронных писем отправляются одновременно, и блокировать службу SMTP на сервере, в то время как существует много периодов, когда SMTP находится в режиме ожидания, ничего не отправляя.

Идея заключается в создании службына который я отправлю всю электронную почту и адрес, внутри службы у меня будет некоторый тип набора данных (я не знаю, какой из них следует использовать в winforms / winservices) и некоторые базовые функции таймера (то есть каждые 3 секунды получают первымпочта и отправка) ... Дело в том, что существует два основных типа писем: регистрационные письма, которые должны быть главным приоритетом, и письма-напоминания (т. е. вы не заходили на сайт в течение месяца), которые имеют низкий приоритет.Я предпочитаю создавать эту приоритетную проблему с двумя наборами данных, когда основной является пустым, а менее важный отправляется.

Другая проблема - как мне получить доступ к этой службе из приложения asp.net на том же сервере?

Как бы вы написали это в коде или, по крайней мере, указали бы мне, как, я знаю, что на веб-сайте MS много объяснений по основным услугам, но, поскольку я не знаю много о проблеме, я предпочитаю, чтобы она была объяснена здесь.*

Спасибо за ваше время.

Ответы [ 4 ]

0 голосов
/ 03 октября 2010

Создание приложения CONSOLE.

Создать 2 очереди в базе данных. Для электронной почты.

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

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

После полной отладки создайте службу, установите ее и дайте ей работать.

0 голосов
/ 03 октября 2010

Что касается создания веб-службы, существует множество примеров, просто Google для "c # windows service example".Всего два примера:

Для обмена данными: я бы сохранял необходимые действия в таблице базы данных и сканировалэти таблицы регулярно из сервиса.В противном случае вы можете использовать .NET удаленное взаимодействие или очереди сообщений или .NET WCF.

hth

Mario

0 голосов
/ 03 октября 2010

Прежде всего, вам вообще не нужна служба Windows, если вы знаете, как отправить электронное письмо из приложения asp.net.Читайте дальше ...

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

После отправки (или не отправки) - эта страница некоторое время спала (вы можете вставить Sleep () в нее - не использовать никаких циклов, потому что она будет использовать ваш ЦП), а затем снова активировалась через запрос http,если нужно отправить больше почты.

Каждая страница, которая заполнила почтовую очередь, также запускает страницу отправки почты, поэтому она не запускается, когда очередь фактически пуста.

Я полагаю,или это, или вы действительно идете за услугами.

0 голосов
/ 03 октября 2010

Я предлагаю вам взглянуть на различные доступные службы электронного маркетинга, многие предлагают API или, по крайней мере, на процесс, который вы можете автоматизировать с помощью кода .Net. Я действительно не стал бы пытаться настроить свой собственный почтовый сервер, так как поддерживать его в рабочем состоянии, даже если он легитимен, сложно, так как любое ошибочное злоупотребление приведет к тому, что вы попадете в черный список, и потребуется много времени, чтобы попасть в белый список (многие из ICANN- постоянная, законная деятельность), поэтому необходимость начинать заново с нового IP разочаровывает.

Работайте с профессионалами в этой области, следите за тем, чтобы они следовали процедурам и процедурам ICANN (а также и за вами), и вы обнаружите, что у них есть все, что вам нужно, и избавите вас от хлопот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...