用Entity Framework6,链接MS SqlServer,本地测试没问题,同事用IP访问就提示了 “The underlying provider failed on open”,在网上查,有人说是连接字符串写的有问题,喵了个咪的,连接字符串写的有问题,为啥我用Add-Migration 和 update-database命令可以成功更新数据库,连接字符串有问题,为啥我IIS Express 下的localhost好用,于是继续searching,发现了一老外写的东西
网址贴在这里,有兴趣的童鞋可以去看看 http://th2tran.blogspot.com/2009/06/underlying-provider-failed-on-open.html
爱国?不喜欢看外文?好吧,我去下地狱。
作者大抵是说,他也遇到了这个问题,于是来回搞来回搞,最后终于发现,EF在操作数据库时要反复链接、断开数据库,如果连接字符串是windows 服务验证,而不是用的用户名和密码,那么尝试访问数据库的用户是NT AUTHORITY\NETWORK SERVICE,这厮权限不够大,导致登录失败。至此水落石出,故事的最后,作者尝试把那个账户添加到SQL Server里,并给了权限,就一切OK了。
本人懒着搞新账户的问题,所以,直接改成用用户名和密码,再次测试,OK了。
喵了个咪,还真的是连接字符串的问题.