Поделиться через


Образец Newsletter

Изменения: 17 июля 2006 г.

Образец Newsletter показывает, как создать простое сетевое приложение для управления подписками. Образец представляет собой многоуровневую схему, содержащую уровень интерфейса на основе HTML и уровень управления подписками. Сетевой проект Microsoft Visual Studio при запуске создает веб-сервер визуальной сетевой разработки, чтобы облегчить использование образца. Этот образец не поддерживается на архитектуре IA64.

Сценарий

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

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

В компании Adventure Works Cycles файл, содержащий данные информационной рассылки и сведения о событиях, поместили в папку под наблюдением. Приступив к работе, генератор выполняет правила хроники событий, чтобы обновить хронику, используемую для подписок по расписанию, затем выполняет правила, управляемые событиями, в отношении необработанных пакетов событий, а затем выполняет правила подписок по расписанию для всех подписок по расписанию, которые должны быть обработаны. При выполнении правила подписки по расписанию оно обновляет хронику подписок, используемую, чтобы отслеживать, когда каждая подписка выдала последнее уведомление. Эти данные используются для предотвращения дублирования уведомлений.

Уведомления создаются при нижеследующих условиях:

  • тип документа события (информационная подписка или уведомление о событиях) совпадает с типом документа в подписке;
  • категория информационной рассылки или события совпадает с категорией в подписке;
  • если подписка является подпиской по расписанию, наступление очередного срока по расписанию имело место в промежутке между последней обработкой правила генератора и текущей обработкой правила генератора;
  • если подписка является подпиской по расписанию, регистрация события в базе данных имела место позже, чем создание подпиской последнего уведомления.

Полученные в результате уведомления форматируются с использованием модуля форматирования данных XSLT и затем отправляются при помощи протокола доставки файлов.

Языки

XML, XSD, XSLT и Microsoft Visual C# или Microsoft Visual Basic.

Возможности

Образец Newsletter использует нижеследующие возможности служб Microsoft SQL Server Notification Services.

Часть образца Возможности

Класс событий

Основной класс событий для подписок, управляемых событиями, и хроника событий для подписок по расписанию.

Класс подписки

Подписки, управляемые событиями, и подписки по расписанию.

Класс уведомления

Сводная доставка.

Поставщики событий

Поставщик событий наблюдателя файловой системы.

Модули форматирования данных

Модуль форматирования данных XSLT.

Протоколы доставки

Протокол доставки файлов и протокол доставки SMTP.

Приложение для управления подписками

Microsoft ASP.NET с использованием веб-сервера визуальной сетевой разработки.

Предварительные требования

Прежде чем запустить этот образец, убедитесь, что установлено следующее программное обеспечение:

  • Microsoft SQL Server 2005, включая следующие компоненты.
    • Компонент Database Engine.
    • Службы Notification Services.
    • Среда SQL Server Management Studio.
    • Образцы служб Notification Services. Данные образцы входят в комплект SQL Server 2005. Последнюю версию образцов можно загрузить в центре разработчиков на SQL Server.
  • Microsoft Visual Studio 2005, включая Visual Web Designer.

Построение образца

Для построения образца необходимо сделать следующее.

  • Создать экземпляр служб Notification Services.
  • Зарегистрировать экземпляр служб Notification Services.
  • Предоставить разрешения на SQL Server и базу данных.

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

Шаг 1. Создайте экземпляр служб Notification Services

  1. Откройте среду SQL Server Management Studio и подключитесь к экземпляру SQL Server.

  2. В обозревателе объектов щелкните правой кнопкой мыши папку служб Notification Services, а затем выберите Создать экземпляр служб Notification Services.

  3. В диалоговом окне Создание экземпляра служб Notification Services нажмите кнопку Обзор и выберите файл InstanceConfig.xml в корневой папке образца Newsletter.

  4. В окне Параметры введите значения для трех параметров.

    • SampleDirectory — это путь к корневой папке образца Newsletter. Каталог по умолчанию — «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Newsletter».
    • NotificationServicesHost — имя локального сервера.
    • SQLServer — имя экземпляра SQL Server.
  5. Установите флажок Включить экземпляр после его создания.

  6. Нажмите кнопку ОК.

  7. После того, как службы Notification Services закончат создание экземпляра, нажмите кнопку Закрыть.

Шаг 2. Зарегистрируйте экземпляр служб Notification Services

  1. В среде SQL Server Management Studio откройте узел служб Notification Services, щелкните правой кнопкой мыши пункт NewsletterInstance, укажите Задачи, а затем выберите Регистрация.

  2. В диалоговом окне Регистрация установите флажок Создать службу Windows. Служба Windows запустит на этом компьютере экземпляр служб Notification Services.

  3. В поле Имя входа для службы введите учетную запись Windows и пароль. Это учетная запись Windows, под которой будет выполняться служба. Если для доступа к SQL Server используется проверка подлинности Windows, то служба Windows будет также использовать эту учетную запись для соединения с SQL Server.

  4. Если для доступа к SQL Server необходимо использовать проверку подлинности SQL Server, выберите Проверка подлинности SQL Server в пункте меню Проверка подлинности и введите имя входа и пароль SQL Server.

    Рекомендуется использовать проверку подлинности Windows.

  5. Нажмите кнопку ОК.

  6. После того, как службы Notification Services закончат регистрацию экземпляра, нажмите кнопку Закрыть.

ms160957.note(ru-ru,SQL.90).gifПримечание.
Если образец служб Notification Services развертывается при помощи учетной записи, принадлежащей владельцу базы данных или системному администратору, разрешения SQL Server на учетную запись предоставлять не нужно. Предоставление этих разрешений завершится ошибкой, на которую можно не обращать внимания. Для обеспечения безопасности при развертывании приложений необходимо использовать учетные записи с наименьшими правами доступа.

Шаг 3. Предоставление разрешений на SQL Server, базу данных и папки

  1. В обозревателе объектов разверните узел Безопасность.

  2. Если необходимо создать новую учетную запись службы Windows для входа в базу данных, щелкните правой кнопкой мыши пункт Имена входа, выберите команду Создать имя входа и создайте учетную запись.

    • Для использования проверки подлинности Windows выберите пункт Проверка подлинности Windows и введите учетную запись Windows, которая указывалась при регистрации экземпляра.
    • Для использования проверки подлинности SQL Server выберите пункт Проверка подлинности SQL Server и введите имя входа и пароль, которые указывались при регистрации экземпляра.
  3. Если имя входа, используемое службой Windows, уже имеет доступ к SQL Server, щелкните его правой кнопкой мыши и выберите пункт Свойства.

  4. В левой области диалогового окна Имя входа выберите пункт Сопоставление пользователей.

  5. Предоставьте разрешения для базы данных NewsletterInstanceNSMain:

    1. в поле Пользователи, сопоставленные с этим именем входа выберите NewsletterInstanceNSMain;
    2. в поле Членство в роли базы данных для: NewsletterInstanceNSMain выберите пункт NSRunService.
  6. Предоставьте разрешения для базы данных NewsletterInstanceNewsletter:

    1. в поле Пользователи, сопоставленные с данным именем входа выберите NewsletterInstanceNewsletter;
    2. в поле Членство в роли базы данных для: NewsletterInstanceNewsletter выберите пункт NSRunService.
  7. Нажмите кнопку ОК, чтобы применить разрешения SQL Server.

  8. При помощи проводника Windows настройте безопасность для папки Events:

    1. перейдите к папке Events образца бюллетеня;
    2. щелкните правой кнопкой мыши папку Events, выберите пункт Общий доступ и безопасность и перейдите на вкладку Безопасность;
    3. нажмите кнопку Добавить и добавьте учетную запись, используемую службой Windows;
    4. в окне Имена групп или пользователей выберите только что добавленную учетную запись;
    5. в поле Разрешения выберите разрешения Чтение и Изменение;
    6. нажмите кнопку ОК, чтобы применить изменения.
  9. Настройте безопасность для папки Notifications:

    1. перейдите к папке Notifications образца Newsletter;
    2. щелкните правой кнопкой мыши папку Notifications, выберите пункт Общий доступ и безопасность, затем выберите вкладку Безопасность;
    3. нажмите кнопку Добавить и добавьте учетную запись, используемую службой Windows;
    4. в окне Имена групп или пользователей выберите только что добавленную учетную запись;
    5. в поле Разрешения выберите Запись;
    6. нажмите кнопку ОК, чтобы применить изменения.

Выполнение образца

Чтобы запустить образец, выполните следующее

  • запустите экземпляр;
  • используйте веб-приложение, чтобы добавить подписчики и подписки;
  • удалите XML-файл, содержащий события.

В следующих процедурах показано, как выполнить эти задачи и затем просмотреть полученные уведомления.

Шаг 1. Запустите экземпляр

  1. В обозревателе объектов откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши пункт NewsletterInstance и выберите Пуск.

Шаг 2. Добавьте подписчиков и подписки

  1. Откройте Visual Studio 2005.

  2. В меню Файл укажите Открыть, а затем выберите пункт Веб-узел.

  3. В диалоговом окне Открыть веб-узел перейдите к папке образца Newsletter SubscriptionManagementWeb\cs\SubscriptionManagementWeb и выберите Открыть.

  4. Нажмите клавишу F5, чтобы запустить веб-приложение.

    Используйте веб-страницу, чтобы добавить подписки для образца пользователя в приложении Newsletter. Значения подписки по умолчанию приведут к выдаче уведомления.

ms160957.note(ru-ru,SQL.90).gifПримечание.
Для приложений рабочей среды или при выполнении приложения от учетной записи с ограниченными правами доступа в базах данных экземпляра и приложения добавьте имя входа SQL Server для приложения к роли базы данных NSSubscriberAdmin.

Шаг 3. Отправьте события

  1. В проводнике Windows перейдите к корневой папке образца Newsletter, а затем скопируйте файл EventData.xml во вложенную папку Events.

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

    Если при чтении или предоставлении данных возникнет ошибка, поставщик событий изменит расширение файла на ERR. Дополнительные сведения о данной ошибке см. в обозревателе событий Windows.

Шаг 4. Просмотрите уведомления

  1. Службам Notification Services понадобится около одной минуты для создания уведомлений.

  2. Используя проводник Windows, перейдите к папке Notifications образца Newsletter. Нужно найти файл с именем FileNotifications.txt, который содержит уведомления.

  3. Перейдите к папке, в которую помещаются сообщения электронной почты. Обычно это одна из папок в каталоге «C:\Inetpub\mailroot». В зависимости от состояния SMTP-сервера уведомления должны находиться в папке Pickup или в папке Queue. Если служба SMTP запущена, то сообщения могут быть перемещены в папку Badmail.

Удаление образца

Используйте нижеследующую процедуру для удаления образца Newsletter.

Удаление образца Newsletter

  1. В обозревателе объектов откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши NewsletterInstance и затем выберите Остановить.

  3. Щелкните правой кнопкой мыши пункт NewsletterInstance, укажите Задачи, а затем выберите Отменить регистрацию.

  4. Щелкните правой кнопкой мыши пункт NewsletterInstance, укажите Задачи, а затем выберите Удалить.

См. также

Другие ресурсы

Образцы служб SQL Server Notification Services
Обеспечение безопасности служб Notification Services

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • В предварительные условия для запуска образца добавлен Visual Web Designer.

14 апреля 2006 г.

Измененное содержимое
  • Добавлены сведения о запуске образцов с разрешениями владельца базы данных.