无法打开数据库,因为它是版本706.此服务器支持655及更早版本。 不支持降级路径

我的App_Data文件夹中有数据库文件,我的web配置如下所示

            

我有Default.aspx页面

        






<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="" SelectCommand="SELECT * FROM [Employee]" DeleteCommand="DELETE FROM [Employee] WHERE [EmpID] = @EmpID" InsertCommand="INSERT INTO [Employee] ([LastName], [FirstName], [Phone1], [Phone2]) VALUES (@LastName, @FirstName, @Phone1, @Phone2)" UpdateCommand="UPDATE [Employee] SET [LastName] = @LastName, [FirstName] = @FirstName, [Phone1] = @Phone1, [Phone2] = @Phone2 WHERE [EmpID] = @EmpID">

和一个Default.aspx.cs页面

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Configuration; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GridView1.DataBind(); } string connectionString = ConfigurationManager.ConnectionStrings["TicketsConnectionString"].ConnectionString; protected void Button1_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("InsertIntoEmployee", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName.Text; cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar); cmd.Parameters.Add("@Phone1", SqlDbType.NVarChar);//SqlDbType.NVarChar allowed to insert Russian letters cmd.Parameters.Add("@Phone2", SqlDbType.NVarChar); cmd.Parameters["@LastName"].Value = LastName.Text; cmd.Parameters["@FirstName"].Value = FirstName.Text; cmd.Parameters["@Phone1"].Value = Phone1.Text; cmd.Parameters["@Phone2"].Value = Phone2.Text; con.Open(); cmd.ExecuteNonQuery(); con.Close(); DisplayMessage.Text = "Запись добавлена."; DisplayMessage.Visible = true; } } 

它抛出这个错误

 The database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. Could not open new database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF'. CREATE DATABASE is aborted. An attempt to attach an auto-named database for file G:\sites\WebSite6\App_Data\Tickets.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: The database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF' cannot be opened because it is version 706. This server supports version 655 and earlier. A downgrade path is not supported. Could not open new database 'G:\SITES\WEBSITE6\APP_DATA\TICKETS.MDF'. CREATE DATABASE is aborted. An attempt to attach an auto-named database for file G:\sites\WebSite6\App_Data\Tickets.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. Source Error: Line 14: protected void Page_Load(object sender, EventArgs e) Line 15: { Line 16: GridView1.DataBind(); Line 17: } Line 18: 

我认为连接字符串有一些问题,但对我来说一切都很好,我的问题是如何解决这个问题?

版本706是来自Sql Server 2012的数据库文件
版本665是来自Sql Server 2008R2的数据库文件(SP1后?)

http://conceptdev.blogspot.com/2009/04/mdf-cannot-be-opened-because-it-is.html

这是经过测试的解决方案,首先在SQL Server Management Studio中连接两个服务器,然后运行第一个代码块

 --1st Run this (One Time) EXEC sp_addlinkedserver @server='YOUR_SERVER_IP', -- here you can specify the name of the linked server @srvproduct='', @provider='sqlncli', -- using SQL Server Native Client @datasrc='YOUR_SERVER_IP', -- add here your server name @location='', @provstr='', @catalog='DATABASE_NAME' 

然后单独运行此命令

 SELECT TOP(100) * FROM LOCAL_TABLE A, [YOUR_SERVER_IP].DATABASE_NAME.dbo.TABLE_NAME C WHERE A.ID=C.ID 

如果您尝试连接到本地数据库,请使用LocalDb(自vs2012,sql2012),即:

 Data Source=(LocalDB)\v11.0;AttachDbFilename= (etc) 

我确定问题是aspnetdb.mdf无法打开。

有时这个文件被破坏了。 问题是我无法validation登录页面。

删除(并替换)我的登录表单控件后,问题就解决了。

原因是因为asp.net控制使用了aspnet成员资格。 我用CSS样式替换了我的登录控件(使用javascript)并删除了所有相关文件并解决了它。

我希望这可以帮助别人。