========================================================================
情形1
问题描述
C#.NET编写了一个webservice的接口,供公司的的其他地方发送和接收短信(采用的方式是:再服务器上安装一个短信猫,然后使用我开发的那个Webservice服务来和短信猫交互,而其他人要使用短息服务的话就使用Webservice的接口就行了)。
现在的问题是,我在VS中进行测试的时候,能够和短信猫交互,并且能够正常的收发短信。但是我把写好的项目发布到IIS上时,程序始终连接不上短信猫。
短信猫是使用的COM口,我想是不是IIS没有访问COM组件的权限(网上说在组件服务里面的DCOM里面设置权限,但是我不知道具体该设置哪一个的权限),因为,我连接短信猫不是使用的AT指令,而是通过第三方SDK发布的DLL接口来实现的。
所以,到底是IIS没有访问DLL的权限,还是IIS没有访问短信猫的权限,还是其他方面有问题。
解决方案:
在DCOM组件服务中给MICROSOFT.EXCEL组件 赋予ASP.NET的操作权限,具体步骤:
(1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口
(2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft Excel应用程序节点
(3)单击右键-〉属性,选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮
(4)在启动权限对话框中点击添加按钮,添加相应的用户(注意:如果是WIN2000,XP,则添加“机器名/ASPNET”用户,我这里是以WIN2003为例,
WIN2003是添加“NETWORK Service”用户),并赋予最大权限
(5) 选择”身份标识”,再选择”交互式用户”即可
上文中是设置EXCEL组件,你需要在你的dcomcnfg中找到你使用的com组件
=========================================================================
情形2:http://www.cnblogs.com/gb2013/archive/2011/09/05/2166894.html
=========================================================================
情形3:
1.运行Dcomcnfg.exe
2.组件服务-计算机-我的电脑-DCOM配置-找到microsoft word 文档
3.点击属性
4.选择“安全性”
5.选定“使用自定义访问权限 ” 和“使用自定义启动权限 ”
6.分别编辑权限 ,添加Everyone(ASPNET,VS Developers,Debugger User )(注:其实准确的应该是"ISUR_机器名"这个用户才对)
7.选择“身份标识”,在选定“交互式用户” 即可
8.在Web.config里加 (这句插在段里就可以了)
<identity impersonate="true"/>
我做了上面的事情还是不能运行,后来在IIS 里做了下面的设置: 在IIS 找到应用程序池-应用程序池默认设置,选择属性,点击标识,将预定义帐户改成本地系统。就可以运行了
-->
https://technet.microsoft.com/zh-cn/library/cc771170(WS.10).aspx
联系客服