因此,我调用一个PHP函数来访问Windows 7服务的状态,如下所示:
win32_query_service_status($service_name);在本地安装的WAMP实例下运行时,该函数将像预期的那样返回一个信息数组。
在IIS下运行时,将返回一个错误状态5,根据文档,该错误对应于以下错误:
WIN32_ERROR_ACCESS_DENIED 0x00000005
The handle to the SCM database does not have the appropriate access rights.因此,使用phpinfo(),我检查运行PHP环境的用户名。在WAMP站点上,服务在我的用户ID (在Windows本地管理员组中)下运行。
在IIS版本下,用户是F6729-44TP6S7$ (这是我的计算机的名称,后面跟着一个$)。因此,解决方案可能只是授予该用户在Windows中服务控制管理器(,SCM)上的必要权限。
但问题是,我对IIS (或Windows)的内部工作不太了解,无法知道这个用户ID来自何处(这意味着我不知道如何授予它必要的特权)。用户不存在于我的计算机管理控制台中,我也找不到它在IIS管理工具中的定义位置。
,所以问题是:,我需要做什么才能让这个函数在IIS下运行?如何将必要的权限授予IIS下的PHP管理器。或者,如何更改运行PHP管理器的用户Id?
发布于 2013-09-25 07:58:04
因此,很显然,这只是一个知道谷歌的目的的问题。一旦你知道你在寻找什么,你就更有可能找到它。
https://serverfault.com/questions/232907/wcf-service-hosted-in-iis7-with-administrator-rights
答案是:
在IIS管理器中,转到:
站点>您的网站
在IIS分节下的“功能”视图中
身份验证>匿名认证>鼠标右键“编辑.”>选择:应用程序池标识确定
这允许匿名连接到网站,在操作系统级别上以管理员用户身份运行PHP (和其他IIS服务)。
如果有人想复制这个答案,或者在你的答案中添加任何有用的信息来要求赏金,那就继续吧。因果报应,生命的循环,诸如此类。
https://stackoverflow.com/questions/18943598
复制相似问题