小编Ras*_*244的帖子

具有不变名称'System.Data.SqlClient;'的ADO.NET提供程序 无法找到(实体框架MVC)

我似乎无法解决实体框架6中似乎是一个常见问题.我已经在SO上回顾了与此问题相关的许多主题,并且无法找到适用于我的特定情况的解决方案.

到目前为止,我一直在使用带有代码优先迁移的localdb进行开发,这很好.但是现在我将它移动到实际的SQL服务器实例,它会在尝试迁移时抛出以下错误:

"具有不变名称'System.Data.SqlClient;'的ADO.NET提供程序 要么没有在机器或应用程序配置文件中注册,要么无法加载.有关详细信息,请参阅内部异常.在System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)"

我尝试了以下修复:

1)卸载并重新安装的实体框架

2)添加了代码并使用:

public abstract class BaseDomainContext : DbContext
{
    static BaseDomainContext()
    {
        // ROLA - This is a hack to ensure that Entity Framework SQL Provider is copied across to the output folder.
        // As it is installed in the GAC, Copy Local does not work. It is required for probing.
        // Fixed "Provider not loaded" error
        var ensureDLLIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

作为我的DbSet类的基类.

3)将所有内容添加到新的解决方案并收到相同的错误.

4)删除了writecontext并尝试了只读的迁移,仍然失败了.

5)使用来自MSDN的信息尝试了几次重写

6)我已经确认EntityFramework.SqlServer.dll在我的bin目录中.它也被正确引用.另外,我的解决方案只有一个项目.

7)确认我没有在视图下使用WebConfig.

8)确认我在bin文件夹中有System.Data …

.net asp.net asp.net-mvc entity-framework entity-framework-6

4
推荐指数
1
解决办法
2万
查看次数

ASP.NET Identity 2 无效,不存在两个因素提供程序

由于某种原因,EmailCode 未显示在有效的两因素身份验证提供程序中。然而,在我删除 PhoneCode 之前,它现在什么也没有显示。我已经调试过,它显示在 UserManager 下,但由于某些奇怪的原因 GetValidTwoFactorProvidersAsync 没有检索它。我已经尝试通过绕过该方法并手动检索值来手动添加它,但随后它会抛出 Microsoft.AspNet.Identity.EmailTokenProvider 不存在的错误消息。我无法解释为什么这不起作用。

        public async Task<ActionResult> SendCode(string returnUrl)
        {
            var userId = await SignInManager.GetVerifiedUserIdAsync();
            if (userId == null)
            {
                return View("Error");
            }
            var userFactors = await UserManager.GetValidTwoFactorProvidersAsync(userId);
            var factorOptions = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList();
            return View(new SendCodeViewModel { Providers = factorOptions, ReturnUrl = returnUrl });
        }
Run Code Online (Sandbox Code Playgroud)

身份配置

            manager.RegisterTwoFactorProvider("EmailCode", new Microsoft.AspNet.Identity.EmailTokenProvider<SystemUser>
                {
                    Subject = "SecurityCode",
                    BodyFormat = "Your security code is {0}"
                });

            manager.EmailService = new …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc two-factor-authentication asp.net-mvc-5 asp.net-identity-2

2
推荐指数
1
解决办法
3816
查看次数