【发布时间】:2015-04-12 02:21:33
【问题描述】:
这个问题不是关于 SQL Server“3xpr355”(混淆 引号是设计使然;它应该防止将来的搜索命中 死胡同,就像我的一样)。
我正在使用代码优先和实体框架来开发 MVC 4 应用程序。 SQL Server、IIS 和 Visual Studio 都在同一台机器上运行。
我最初使用的是 SQL Server“3xpr355”,但由于需要将它放在通过 ISS 连接到 Internet 的机器上,因此必须将其连接到功能齐全的 SQL Server。我将应用程序设置为在模型更改时删除并重新创建数据库:
public class XyzDBContext : DbContext
{
public XyzDBContext()
: base("XyzDBContext")
{
Database.SetInitializer<XyzDBContext>(new DropCreateDatabaseIfModelChanges<XyzDBContext>());
}
public DbSet<XyzModel> XyzModels{ get; set; }
}
这是我的连接字符串:
<connectionStrings>
<add
name="DefaultConnection"
connectionString="Data Source=.;Initial Catalog=aspnet-Xyz-20150131102119;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
<add
name="XyzDBContext"
connectionString="Data Source=.;Initial Catalog=XyzDatabase;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
期望:
- 执行使用 XyzDBContext 的应用程序部分应导致创建数据库“XyzDatabase”(如有必要)。
- 执行使用 Membership Provider 的应用程序部分应导致创建数据库“aspnet-Xyz-20150131102119”(如有必要)。
实际结果:
- 抛出异常:System.Data.ProviderIncompatibleException "An 从数据库获取提供者信息时出错。 这可能是由 Entity Framework 使用不正确的连接引起的 细绳。检查内部异常以了解详细信息并确保 连接字符串正确。”
- 内部异常: System.Data.ProviderIncompatibleException "提供者没有 返回一个 ProviderManifestToken 字符串。”
- 内部异常: System.Data.SqlClient.SqlException“用户登录失败 'DOMAIN\SERVER$'。”
措施:
- 我曾尝试使用 SQL Server Management Studio 为“DOMAIN\SERVER$”用户添加登录名,但登录总是失败。
- 我已经研究并尝试了许多连接字符串的排列方式,除了少数几个我发现的示例之外,所有示例都用于 SQL Server“3xpr355”。
【问题讨论】:
标签: sql-server asp.net-mvc login connection-string code-first