SQL Server Express问题将MVC4应用程序部署到IIS

时间:2013-02-20 04:25:22

标签: asp.net-mvc iis-7 visual-studio-2012 sql-server-express

过去两天我在部署服务器上使用不同版本的连接字符串浏览谷歌(以及此处)...如果我还有头发,我现在就把它拉出来...... ;)

我有一个应用程序在我的开发Win7盒子上完美运行,我正在努力将它部署到测试服务器,然后才进入测试阶段。

测试服务器是带有IIS 7的Windows 2008 R2。

我可以将应用程序部署到IIS,并且该站点出现了。

但是当我到达连接到本地主机上运行的SQL Server Express的页面时,它就会死掉。我还要提一下,SQL Server Express实例上已经存在数据库,连接到该数据库时,我的Winforms和服务应用程序运行良好。

我的web.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" />

我得到的错误是:

  

底层提供程序在Open上失败。

我已尝试将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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

好吧,只花了3天才搞清楚......我在error.cshtml中添加了以下代码: `@Html.DisplayFor(model =&gt; model.ActionName)

@ Html.DisplayFor(model =&gt; model.ControllerName)

@ Html.DisplayFor(model =&gt; model.Exception.Source)

@ Html.DisplayFor(model =&gt; model.Exception.InnerException)

@ Html.DisplayFor(model =&gt; model.Exception)`

这向我显示IIS APPPOOL \ [PoolName]没有访问权限。我使用以下说明将其添加到我的SQL配置中:Add IIS 7 AppPool Identities as SQL Server Logons