- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这似乎与使用代码优先或本地数据库实例时 EF 未连接到 SQL Server 数据库的常见错误配置问题有关。但是,我的方案不包括其中任何一个。我正在尝试运行一个包含 34 个项目的生产应用程序,这些项目刚从 SVN 中提取出来,连接到几个不同的远程 SQL 框。当我调试时,我在第一次尝试访问主数据库时抛出了这个异常:
ProviderIncompatibleException
The Provider did not return a ProviderManifestToken string.
内部异常:
Login failed for user 'DOMAIN\\MACHINE-NAME$'.
堆栈跟踪:
at System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
at System.Data.Entity.ModelConfiguration.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)
at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.Initialize()
at System.Data.Entity.Internal.LazyInternalContext.get_ObjectContext()
at System.Data.Entity.DbContext.System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext()
at XX.Service.Base.GenericRepository`1.Get(String predicate, Object[] values, Int32 PageNumber, Int32 PageSize, List`1 SortColumns, String[] path) in [...]
at XX.Service.Base.GenericRepository`1.Get(SearchCommand cmd, String[] path) in [...]
此行失败:
ObjectContext objectContext = ((IObjectContextAdapter)Context).ObjectContext;
我的连接字符串:
<add name="ProdContext" connectionString="Data Source=SERVER.companydomain.com\XX,51332;Initial Catalog=ProdDB;Integrated Security=true;" providerName="System.Data.SqlClient"/>
我已经查看了搜索“providerincompatibleexception login failed”时列出的每个 SO 问题,但我仍然找不到答案。我可以使用 Windows 身份验证通过 SSMS 登录到 SQL 服务器。 DBA 说我和其他应用程序开发人员在同一个访问组中。我在本地 IIS 管理器中无休止地摆弄目录权限和身份验证设置。调试时,如果我检查底层上下文,服务器地址和连接字符串是正确的。
我必须在某处缺少配置设置。我可以在生产站点上使用该应用程序,但不能在我的本地 VS2012 构建中使用。我还能检查什么?我错过了什么?我希望能够在其他开发人员休假归来之前成功构建并加快速度...
最佳答案
我认为与外部异常相比,它更多地与内部异常有关:
用户 'DOMAIN\\MACHINE-NAME$' 登录失败
我猜您使用的是本地 IIS Web 服务器,而不是 Visual Studio 开发服务器。
我相信应用程序池的身份是影响这一点的因素。该帐户或运行 ASP.NET/IIS 服务的帐户。
IIS 管理器->应用程序池->右键单击您的应用程序运行所在的池->高级设置->身份
我相信这是在您使用集成安全连接字符串时将用于 SQL Server 的帐户。
将该设置与其他开发人员的机器进行比较。
此外,在 IIS 管理器->站点->单击您的站点->基本设置下,有一个“连接为”选项。如果您有嵌套站点,通常这会继承,但有一次我不得不在嵌套站点上明确设置它,以解决传递错误用户进行身份验证的问题。
关于c# - 如何打败 ProviderIncompatibleException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20751121/
我是一名优秀的程序员,十分优秀!