IIS 执行系统程序权限

环境: windows 2008 server R2  IIS7.5 fastcgi

问题: 原来的程序采用Apache 运行,现在移植到IIS 上,原来的在程序中调用生成图片的系统程序出现不能执行问题,也看了很多微博,现在总结一下,从一下几个思路中进行解决;

因为原来的程序是执行正常的,因此主要是环境的变化导致的,所以排除程序问题,主要是从权限不同考虑。

1: 在查询里看一下执行的用户是谁。

exec( "whoami" , $output , $ret );

显示一下$output 的信息,可以确认一下,iis执行的时候,用户是谁。

$ret 如果是 1 , 则说明执行有错误, 0 则执行正常。

2: 因为apache 是从系统用户运行的,iis是网络用户,因此需要设置cmd的用户权限,位置在c:/windows/system32/cmd.exe , 增加IUSR的可执行权限;

增加了此用户还是不能正常运行;

3: 配置IIS的应用程序池,把标识改为LocalSystem ,  IIS默认的是ApplicationPoolIdentity

4:  增加网站权限,因为程序需要写入数据,点击你的网站,又上角有一个编辑权限,给你需要写入数据的目录增加你的网络用户权限读写,一般为IUSR用户。

5:如果前面还不能解决房问题,确认一下执行程序的位置,因为IIS采用的网络用户执行,因此系统的环境与普通验证用户不同,把需要执行的程序路径写完整了,不要采用相对路径;往往可以解决问题。

我的这个问题上摸索了一个上午,最后在第五部的时候把问题解决了,在我本地windows7 没有问题,最后增加了一个完整路径的配置,以后不同环境增加一个配置,我把这个问题整理一下,以便给有类似问题的人一个解决思路吧。

时间: 2024-10-10 16:37:07

IIS 执行系统程序权限的相关文章

IIS网站程序无法访问oracle

系统环境: win7 + iis7 asp.net应用程序访问oracle数据库时,报ORA-12560: TNS: 协议适配器错误. 使用c/s程序访问数据库没有问题,plsql也没问题,说明oracle驱动安装没有问题. 使用visual studio开发服务器没有问题,因此确定是iis设置或权限的问题. 接着,按常规做法,将oralce安装目录授权给network service,以及iis中匿名用户所指定的用户, 结果还是一样报错: 最后,更改应用程序池的用户标识为local syste

IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案)[转]

IIs 网站应用程序与虚拟目录的区别及高级应用说明(文件分布式存储方案) 对于IIS网站,大伙用的比较多,就不啰嗦了.   今天和说说大伙比较少使用的"IIS应用程序”和虚拟目录的区别及高级应用场景,文件分布式存储方案. 1:IIS网站: 一个网站,基本就是一个站点,绑定N个域名,绑定N个IP,然后设定一个应用程序池,基本就跑起来了,一个网站可以新建无数个应用程序和虚拟目录. 一行就带过了,大伙都懂,不多说. 2:应用程序(同一域名下程序的独立开发,独立部署的最佳应用策略): 我们发现,IIS网

Android程序权限

android.permission.ACCESS_CHECKIN_PROPERTIES 允 许读写访问"properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded) android.permission.ACCESS_COARSE_LO

Android清单文件具体解释(二) ---- 应用程序权限声明

我们知道,Android系统的各个模块提供了很强大的功能(比方电话,电源和设置等),通过使用这些功能.应用程序能够表现的更强大.更灵活.只是,使用这些功能并非无条件的.而是须要拥有一些权限.接下来,我们就開始解说还有一个很重要的知识点--应用程序权限声明.当中主要包含应用程序的权限声明,自己定义应用程序的訪问权限和SDK版本号限定. 1.<uses-permission>--应用程序的权限申请 权限 描写叙述 android.permission.ACCESS_NETWORK_STATE 同意

Android清单文件详解(二) ---- 应用程序权限声明

我们知道,Android系统的各个模块提供了非常强大的功能(比如电话,电源和设置等),通过使用这些功能,应用程序可以表现的更强大,更灵活.不过,使用这些功能并不是无条件的,而是需要拥有一些权限.接下来,我们就开始讲解另一个非常重要的知识点--应用程序权限声明,其中主要包括应用程序的权限声明,自定义应用程序的访问权限和SDK版本限定. 1.<uses-permission>--应用程序的权限申请 权限 描述 android.permission.ACCESS_NETWORK_STATE 允许应用

MySQL列权限和程序权限管理

列权限管理 MySQL是由列级别权限存在的.这也体现了MySQL高级特性.实现了限制用户对表上特定列的访问权限. 一般都是实现对表级别不具备访问权限,但是对某些列有访问权限.当然也存在其他情形. 1# 列权限相关的字典表: ([email protected])[mysql]> desc columns_priv; +-------------+----------------------------------------------+------+-----+----------------

在IIS中ASP.NET调用cmd程序权限不足

问题 在本地代码中调用cmd 显示的路径为C:\Users\用户名> 而在服务器中调用cmd 显示的路径为C:\Windows\system32\inetsrv > 原因 服务器中调用的不是系统的cmd.exe 而是调用C:\Windows\system32\inetsrv 中的appcmd.exe 该工具来配置和查询 Web 服务器上的对象,并以文本或 XML 格式返回输出. 解决方法 创建一个iis用户(Administrator)注:创建的iis用户必须要有密码,还需要为iis用户添加执

IIS 发布程序,无法输出EXCEL 问题处理

[解决方案1] 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 4:在"DCOM配置"中找到"MicrosoftExcel 应用程序",在它上面点击右键,

IIS调用批处理权限的处理

最近公司希望将Windows 2003升级为Windows 2008,做完安全设置后发现.net调用批处理拒绝访问的情况. 网上很多说更改应用程序池的权限,建议不需要修改该权限,我这里强烈建议使用默认的权限控制. 故障情况: .net可以正常调用exe文件,但是无法调用批处理文件. 最后使用程序跟踪发现调用批处理需要cmd.exe访问执行权限,因为安全上考虑将cmd.exe的users用户执行权限都删除了.于是在c:\windows\system32\cmd.exe将users权限赋予执行即可正