0

在过去的两天里,我在谷歌(和这里)浏览了我的部署服务器上连接字符串的不同变体......如果我还有头发,我现在已经把它拔掉了......;)

我有一个可以在我的开发 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=&quot;Data Source=.\SQLEXPRESS;Initial Catalog=OID;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework&quot;" 
     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=&quot;Data Source=.\SQLEXPRESS;Initial Catalog=OID;User ID=OID_User;Password=MyPrivatePAss;MultipleActiveResultSets=True;Application Name=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

我已经进入 SQL Server 配置管理器并配置/启用命名管道然后 TCP/IP 并使用主机 IP 通过连接字符串中的 server= 进行连接。

我可以使用用户名/密码登录 SQL Server Management Studio,还可以使用 IP 与.\SQLExpress.

我错过了什么?

4

1 回答 1

0

好的,只花了 3 天时间就搞定了……我在 error.cshtml 中添加了以下代码:`@Html.DisplayFor(model => model.ActionName)

@Html.DisplayFor(model => model.ControllerName)

@Html.DisplayFor(model => model.Exception.Source)

@Html.DisplayFor(model => model.Exception.InnerException)

@Html.DisplayFor(model => model.Exception)`

这向我表明 IIS APPPOOL\[PoolName] 没有访问权限。我使用以下说明将此添加到我的 SQL 配置中:将 IIS 7 AppPool 身份添加为 SQL Server 登录

于 2013-02-25T00:03:26.037 回答