常见问题 的常见问题>>

我的 IIS 服务器可以运行一个自定义的 mpeg 播放应用程序。该应用程序可以将 mpeg 数据进行流式处理,具体是使用一块特殊的卡将数据解码并以流式输出到投影机上。当 mpeg 源位于本地磁盘上时,这个进程可以正常运行。但现在我需要从 Unix 服务器上提取 mpeg。当 IIS 加载 mpeg 播放应用程序时,总是以 SYSTEM 身份执行加载,但此身份无法访问 NFS(Unix 服务器)共享资源。我需要让 IIS 在启动 mpeg 播放应用程序时使用 SYSTEM 以外的一个用户身份。我已经试过更改 IIS 服务使用的用户帐户,但这样一来问题更多了。如何才能解决这个问题,我到底错在哪里呢?

发布时间:2010-12-02 09:26:40

答案:

任何进程都总是在帐户的“上下文”中运行的。正如您指出的那样,INETINFO 是由 SYSTEM 帐户所启动的进程,所以 Inetinfo 是在 SYSTEM 帐户上下文中运行的。SYSTEM 帐户不属于典型的用户帐户。SYSTEM 帐户的一个特点之一就是不具备网络访问权,因此,以 SYSTEM 身份运行的应用程序无法访问网络资源。某些情况下,可以对服务进行配置,让它作为由一个指定的用户帐户启动的进程运行,但 IIS 又不支持此项配置功能。
最理想的做法就是让 IIS 服务器中的应用程序切换“上下文”,使用正调用该应用程序的用户的安全身份验证凭据(有关详细信息,请参考以下两本书:由微软出版社出版的 Designing Secure Web-Based Applications for Microsoft Windows 2000(为 Microsoft Windows 2000 设计安全的基于 Web 的应用程序)及 Addison Wesley 出版的 Programming Windows Security(Windows 安全性编程)。
不过,您还可以通过将应用程序配置为在进程外 运行来解决问题。您可以在 IIS 管理单元的 Web 站点或目录属性中配置该设置。在 Internet Information Server 4 中,需要选中“在单独的内存空间中运行(独立进程)”复选框;在 IIS 5 中,需要将应用程序保护级别设置为“中”或“高”。一经配置,应用程序将在 IWAM_ 帐户而不是 SYSTEM 帐户的上下文中运行。IWAM 是一个普通的用户帐户,您可以为其分配访问远程网络资源的权限,这样在此环境中运行的应用程序就可以访问这些资源了。
作为多个站点的主机时推荐使用的文件夹结构

本FAQ适用范围

下一步您可以:
查看产品 >>