演练:远程服务器上的订阅管理界面部署

对于基于 Internet 的通知应用程序,订阅管理界面通常部署在现有的 Internet 信息服务 (IIS) Web 服务器上。

本方案显示如何在远程 IIS 服务器上部署基于 ASP.NET 的订阅管理界面。本方案需要一个域帐户,订阅管理界面使用此帐户连接到 Microsoft SQL Server。本主题中的过程显示如何创建此登录帐户并授予其必要的权限。

必备项

在部署基于 ASP.NET 的订阅管理界面之前,请确保满足下列所有的前提条件:

  • 您已安装了 Microsoft Windows,添加了 IIS 组件,并已启用了 ASP.NET。请参阅 Windows 文档以获得有关指导。
  • 您(或域管理员)已创建了基于 ASP.NET 的界面所使用的域帐户。当允许远程服务器上的界面通过 Windows 身份验证连接到 SQL Server 时必需该域帐户。在本演练中,域帐户称为 DOMAIN\WebApp。
    ms171319.note(zh-cn,SQL.90).gif注意:
    您可以使用 SQL Server 身份验证。但是,Microsoft 建议使用 Windows 身份验证。
  • 您已将应用程序添加到 IIS 中,但尚未配置其安全性。
  • 您已部署了 Notification Services 实例,从而在数据库服务器上创建了实例数据库和应用程序数据库。
  • 已在数据库引擎 上启用了 TCP/IP 或 Named Pipes 网络协议。在 SQL Server 2005 中,默认情况下禁用这些网络协议。有关详细信息,请参阅 SQL Server 外围应用配置器

IIS 服务器任务

在 Web 服务器上执行下列步骤。

步骤 1:安装 Notification Services 客户端组件

  1. 安装 Notification Services 客户端组件。

    有关安装组件的详细信息,请参阅安装 SQL Server Notification Services

步骤 2:注册实例

  1. 在**“开始”菜单上,依次指向“所有程序”Microsoft SQL Server 2005Notification Services,然后单击“Notification Services 命令提示符”**以打开 Notification Services 命令提示符窗口。

  2. 键入下列命令,注册实例:

    nscontrol register -nameinstanceName-serverdatabaseServer

  3. 保持命令提示符窗口处于打开状态,以供下一个过程使用。

步骤 3:配置基于 ASP.NET 的应用程序的安全性

  1. 打开 Machine.config 文件。该文件应位于 %windir%\Microsoft.NET\Framework\vn.n.nnnn\CONFIG 下。

  2. 找到 processModel 元素。此元素具有多个属性,其中包括 userNamepassword

  3. userName 值设置为 DOMAIN\WebApp,将 password 值设置为此帐户的密码。此元素应如下所示:

    <processModel
        ...
        userName="DOMAIN\WebApp"
        password="aspnet_password"
        ...
    />
    
  4. 保存 Machine.config 文件。

  5. 授予 DOMAIN\WebApp 帐户对 %windir%Microsoft.NET\Framework\vn.n.nnnn\Temporary ASP.NET Files 文件夹的**“完全控制”**权限。

    有关授予对文件夹的权限的详细信息,请参阅 Windows 文档。

  6. 重新启动 IIS,应用所做的更改。

数据库服务器任务

您必须为 DOMAIN\WebApp 帐户授予 SQL Server 权限和数据库权限。如果非宿主事件提供程序服务器上安装有 SQL Server 工作站组件,则可以在该服务器上执行这些步骤。

授予 SQL Server 权限和数据库权限

  1. 打开命令提示符窗口。

  2. 键入以下命令以创建 DOMAIN\WebApp 帐户的 SQL Server 登录:

    sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\WebApp] FROM WINDOWS;"

  3. 键入以下命令以授予 DOMAIN\WebApp 帐户访问实例数据库的权限,并将此帐户添加到 NSSubscriberAdmin 数据库角色中:

    sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;

    CREATE USER [DOMAIN\WebApp];

    EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"

  4. 如果应用程序都有单独的数据库,则键入以下命令以授予 DOMAIN\WebApp 帐户访问应用程序数据库的权限,并将此帐户添加到 NSSubscriberAdmin 数据库角色中:

    sqlcmd -E -S databaseName -Q "USE applicationDatabase;

    CREATE USER [DOMAIN\WebApp];

    EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"

    如果实例承载多个应用程序,则对每个应用程序数据库重复此步骤。

现在,应该可以使用订阅管理应用程序对 Notification Services 实例的订阅方和订阅进行管理了。

疑难解答

如果您无法管理订阅方和订阅,则请在 Notification Services 命令提示符下运行以下命令以检查实例的状态:

nscontrol status-name instanceName

确保订阅方和订阅管理已启用。有关详细信息,请参阅查看实例、应用程序和组件的状态

还要检查 Windows 应用程序日志是否出现错误。有关详细信息,请参阅对 Notification Services 进行故障排除

请参阅

概念

部署 Notification Services 实例
部署非宿主事件提供程序

其他资源

部署 Notification Services

帮助和信息

获取 SQL Server 2005 帮助