【发布时间】:2013-05-23 11:03:04
【问题描述】:
我遇到了一个似乎不知从何而来的问题,我迷路了。
我使用的是 SQL Server 2012,并且能够使用默认连接连接到数据库,以便使用成员资格实体。
现在每当我尝试登录或注册时,都会收到以下错误:
发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 定位服务器/实例时出错 指定)
在我看到的错误页面下方:
SQLExpress 数据库文件自动创建错误:
连接字符串指定一个本地 Sql Server Express 实例 使用应用程序的 App_Data 目录中的数据库位置。 提供者试图自动创建应用程序 服务数据库,因为提供商确定该数据库 不存在。以下配置要求是必要的 成功检查应用程序服务是否存在 数据库并自动创建应用服务数据库:
如果应用程序在 Windows 7 或 Windows Server 上运行 2008R2,需要特殊配置步骤才能启用自动 提供者数据库的创建。有更多信息可用 在:http://go.microsoft.com/fwlink/?LinkId=160102。如果 应用程序的 App_Data 目录尚不存在,web 服务器帐户必须具有对应用程序的读写权限 目录。这是必要的,因为 Web 服务器帐户将 如果尚未创建 App_Data 目录,则自动创建 存在。如果应用程序的 App_Data 目录已经存在,则 web 服务器帐户只需要对 应用程序的 App_Data 目录。这是必要的,因为网络 服务器帐户将尝试验证 Sql Server Express 数据库已存在于应用程序的 App_Data 目录中。 从 Web 服务器撤消对 App_Data 目录的读取访问权限 帐户将阻止提供者正确确定 Sql Server Express 数据库已经存在。这将导致错误 当提供者试图创建一个已经存在的副本时 现有数据库。需要写入权限,因为 Web 服务器 创建新数据库时使用帐户的凭据。 Sql 服务器 Express 必须安装在机器上。进程标识 Web 服务器帐户必须具有本地用户配置文件。见 自述文件了解如何创建本地用户配置文件的详细信息 机器和域帐户。
我没有运行 sqlexpress,并且在我的 webconfig 中没有任何地方指向 sqlexpress。
这是连接字符串代码的副本:
<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=TheYogaDen;Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="TheYogaDenEntities" connectionString="metadata=res://*/App_Code.DAL.TheYogaDenModel.csdl|res://*/App_Code.DAL.TheYogaDenModel.ssdl|res://*/App_Code.DAL.TheYogaDenModel.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=TheYogaDen;user id=YogaDBUser;password=Yoga!@#$;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我能够使用该连接连接到 VS 服务器资源管理器中的数据库。但是,当我转到 ASP.net Web 配置工具并尝试测试我的提供程序时,它告诉我没有配置任何内容。我运行 aspnet_regsql 并配置数据库以进行连接,但错误仍然存在。
有什么想法吗?
【问题讨论】:
-
我不完全确定为什么会发生这种情况......但我找到了解决方案,或者更确切地说是一种解决方法。我去测试了我正在做的另一个项目,并且连接工作正常。所以我复制了 webconfig 文件,对登录凭据进行了一些更改。不是最好的解决方案,但它确实有效。
标签: asp.net sql-server visual-studio-2010