演练:远程服务器上的订阅管理界面部署
对于基于 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。
注意: 您可以使用 SQL Server 身份验证。但是,Microsoft 建议使用 Windows 身份验证。 - 您已将应用程序添加到 IIS 中,但尚未配置其安全性。
- 您已部署了 Notification Services 实例,从而在数据库服务器上创建了实例数据库和应用程序数据库。
- 已在数据库引擎 上启用了 TCP/IP 或 Named Pipes 网络协议。在 SQL Server 2005 中,默认情况下禁用这些网络协议。有关详细信息,请参阅 SQL Server 外围应用配置器。
IIS 服务器任务
在 Web 服务器上执行下列步骤。
步骤 1:安装 Notification Services 客户端组件
安装 Notification Services 客户端组件。
有关安装组件的详细信息,请参阅安装 SQL Server Notification Services。
步骤 2:注册实例
在**“开始”菜单上,依次指向“所有程序”、Microsoft SQL Server 2005 和 Notification Services,然后单击“Notification Services 命令提示符”**以打开 Notification Services 命令提示符窗口。
键入下列命令,注册实例:
nscontrol register -nameinstanceName-serverdatabaseServer
保持命令提示符窗口处于打开状态,以供下一个过程使用。
步骤 3:配置基于 ASP.NET 的应用程序的安全性
打开 Machine.config 文件。该文件应位于 %windir%\Microsoft.NET\Framework\vn.n.nnnn\CONFIG 下。
找到 processModel 元素。此元素具有多个属性,其中包括 userName 和 password。
将 userName 值设置为 DOMAIN\WebApp,将 password 值设置为此帐户的密码。此元素应如下所示:
<processModel ... userName="DOMAIN\WebApp" password="aspnet_password" ... />
保存 Machine.config 文件。
授予 DOMAIN\WebApp 帐户对 %windir%Microsoft.NET\Framework\vn.n.nnnn\Temporary ASP.NET Files 文件夹的**“完全控制”**权限。
有关授予对文件夹的权限的详细信息,请参阅 Windows 文档。
重新启动 IIS,应用所做的更改。
数据库服务器任务
您必须为 DOMAIN\WebApp 帐户授予 SQL Server 权限和数据库权限。如果非宿主事件提供程序服务器上安装有 SQL Server 工作站组件,则可以在该服务器上执行这些步骤。
授予 SQL Server 权限和数据库权限
打开命令提示符窗口。
键入以下命令以创建 DOMAIN\WebApp 帐户的 SQL Server 登录:
sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\WebApp] FROM WINDOWS;"
键入以下命令以授予 DOMAIN\WebApp 帐户访问实例数据库的权限,并将此帐户添加到 NSSubscriberAdmin 数据库角色中:
sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;
CREATE USER [DOMAIN\WebApp];
EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"
如果应用程序都有单独的数据库,则键入以下命令以授予 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 实例
部署非宿主事件提供程序