2013-02-20 68 views
0

我曾與一個連接字符串的不同變化花了近兩天通過谷歌會(在這裏)我的部署服務器上。如果我離開了頭髮,我迄今爲止已拉出來......;)SQL Server Express的問題,部署MVC4應用到IIS

我有一個完美的運行在我的Win7發展的箱應用和正在致力於將其部署到測試服務器我把它放到測試之前。

測試服務器是Windows 2008 R2的IIS 7

我能夠將應用程序部署到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" /> 

我得到的錯誤是:

基礎提供失敗的打開。

我已經嘗試將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實例名稱。

我錯過了什麼?

+0

你嘗試使用計算機名\ SQLEXPRESS? – allen 2013-02-20 13:40:37

+0

是的,我也嘗試過...... – 2013-02-20 13:54:12

回答

0

確定,只用了3天想出解決辦法...我下面的代碼添加到我的error.cshtml: `@ Html.DisplayFor(型號=> model.ActionName)

@Html。 DisplayFor(型號=> model.ControllerName)

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

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

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

這表明IIS APPPOOL \ [PoolName]沒有訪問權限。我加入下列指示我的SQL配置這樣的:Add IIS 7 AppPool Identities as SQL Server Logons