通过IIS不能连接远程数据库的问题
近期遇到一个奇怪的问题:在调试MES程序时发现,如果连接的是远程的SQL SERVER数据库(通过了IIS),则提示连接失败,就是经常见到的数据库不允许远程连接的错误提示;
而且又测试了以下几种情况:
1. 在芜湖与石家庄都遇到这种情况,而且数据库服务器端未做任何改动;
2. 使用IIS连接本地的数据库正常;
3. 别人的机器在调试程序时可以正常地连接远程数据库;
4. 使用本人机器的SQL SERVER客户端可以正常访问远程数据库;
5. 使用本人机器,不使用IIS,直接使用最基本的代码连接远程的SQL SERVER数据库,一切正常;
6. 重新注册asp.net到IIS,并重启IIS,仍然连接失败;
因此可以肯定是本人机器的原因,而且这个问题肯定出现在了使用IIS访问远程数据库的过程中。
最可能的原因:
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