我在vb.net中下载了Asp.NET MVC 3 EntityFramework Code第一个示例应用程序并修改了连接字符串,因为我没有使用SQL Server Express Edition来尝试使用Sql Server 2008 Web Edition
<add name="ApplicationServices"
connectionString="Server=MyPC\Sql2008;Trusted_Connection=True;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
当我尝试运行应用程序时,抛出 ProviderIncompatibleException 异常。并在浏览器窗口中显示以下错误。
>应用程序中的服务器错误。建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:共享内存提供程序,错误:40 - 无法打开与SQL Server的连接)
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:共享内存提供程序,错误:40 - 无法打开与SQL Server的连接)
来源错误:
第24行: 第25行: 第26行:@For在模型中的每个项目 第27行:@ 第28行:
源文件:C:\ Documents and Settings \ Shishir Shukla \ My Documents \ Downloads \ CodeFirstEFVB \ CodeFirstMVC \ Views \ Blog \ Index.vbhtml Line:26
我使用的连接字符串与我的asp.net webforms应用程序以及Winforms应用程序完美配合。
请尽快帮我解决这个问题,因为我刚刚切换到MVC。
答案 0 :(得分:2)
问题在于连接字符串,我把它改成了它并且它有效..
<add name="DBCon" connectionString="Data Source=.\SQL2008;Initial Catalog=TestDB;Integrated Security=True" providerName="System.Data.SqlClient" />
答案 1 :(得分:0)
您能提供下载项目的链接吗?
您正在使用Windows身份验证,IIS帐户是否具有数据库权限?
最后,验证您的dbContext类名为“ApplicationServices”。否则,您可能需要使用接受nameOrConnectionString的构造函数。
答案 2 :(得分:-1)
您的连接字符串是一个有效的SQL连接字符串,但您需要一个Entity Framework连接字符串。
创建EF模型时,从头开始创建新的连接字符串。这将解决这个问题。
您可以在web.config中查看新的连接,并且您将看到实体连接包含作为连接字符串一部分的其他元数据,并包装SQL连接字符串。
<强>更新强>
有效的实体连接字符串将如下所示:
<add name="MyDatabaseEntities" connectionString="metadata=res://*/Models.MyDatabase.csdl|res://*/Models.MyDatabase.ssdl|res://*/Models.MyDatabase.msl;provider=System.Data.SqlClient;provider connection string="data source=SERVER;initial catalog=MyDatabase;persist security info=True;user id=userid;password=password;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
但是,您应该让Visual Studio为您构建连接字符串。