近期遇到一个奇怪的问题:在调试MES程序时发现,若是链接的是远程的SQL SERVER数据库(经过了IIS),则提示链接失败,就是常常见到的数据库不容许远程链接的错误提示;html
并且又测试了如下几种状况:数据库
1. 在芜湖与石家庄都遇到这种状况,并且数据库服务器端未作任何改动;安全
2. 使用IIS链接本地的数据库正常;服务器
3. 别人的机器在调试程序时能够正常地链接远程数据库;asp.net
4. 使用本人机器的SQL SERVER客户端能够正常访问远程数据库;测试
5. 使用本人机器,不使用IIS,直接使用最基本的代码链接远程的SQL SERVER数据库,一切正常;.net
6. 从新注册asp.net到IIS,并重启IIS,仍然链接失败;调试
所以能够确定是本人机器的缘由,并且这个问题确定出如今了使用IIS访问远程数据库的过程当中。htm
最可能的缘由:blog
1. IIS的配置;
2. 安全权限方面的问题;
最后,终于从网上查到一个相似的问题,将问题解决;不然就要重作系统了。
解决办法:
修改IIS应用程序池的设置:找到程序对应的应用程序池,在“高级设置”中找到“标识”,而后为其内置帐户选择“localsystem”(原来是ApplicationPoolIdentity)。
参考:http://www.cnblogs.com/zhangronghua/archive/2008/10/07/1305597.html
可是,这种解决方案是否最好,或者应该还有其余的解决办法,后来又查了一下关于IIS的标识的资料,ApplicationPoolIdentity是IIS7.5中新增的,并且更推荐使用它,估计默认就应该是它,也许改其余哪一个地方的权限,也能够解决这种问题。
参考:IIS7.5中应用程序池标识是什么 http://www.veryhuo.com/a/view/72397.html