在过去的两天里,我在谷歌(和这里)浏览了我的部署服务器上连接字符串的不同变体......如果我还有头发,我现在已经把它拔掉了......;)
我有一个可以在我的开发 Win7 机器上完美运行的应用程序,并且正在将其部署到测试服务器,然后再将其投入测试版。
测试服务器是带有 IIS 7 的 Windows 2008 R2。
我能够将应用程序部署到 IIS 并且该站点出现。
但是当我到达一个连接到本地主机上运行的 SQL Server Express 的页面时,它就死了。我还应该提到,该数据库已经存在于 SQL Server Express 实例上,并且我的 Winforms 和服务应用程序在连接到该数据库时运行良好。
Myweb.config
包含以下连接字符串:
<add name="OIDEntities"
connectionString="metadata=res://*/Models.OID.csdl|res://*/Models.OID.ssdl|res://*/Models.OID.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;Initial Catalog=OID;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework""
providerName="System.Data.EntityClient" />
我得到的错误是:
基础提供程序在打开时失败。
我尝试将 SQL Server 中的服务重置为nt authority\network service
(以匹配应用程序池)。我还尝试创建 SQL Server 用户并使用以下连接字符串:
<add name="OIDEntities"
connectionString="metadata=res://*/Models.OID.csdl|res://*/Models.OID.ssdl|res://*/Models.OID.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;Initial Catalog=OID;User ID=OID_User;Password=MyPrivatePAss;MultipleActiveResultSets=True;Application Name=EntityFramework""
providerName="System.Data.EntityClient" />
我已经进入 SQL Server 配置管理器并配置/启用命名管道然后 TCP/IP 并使用主机 IP 通过连接字符串中的 server= 进行连接。
我可以使用用户名/密码登录 SQL Server Management Studio,还可以使用 IP 与.\SQLExpress
.
我错过了什么?