超时连接到SQL Server 2016

时间:2016-08-25 22:43:44

标签: c# sql-server entity-framework

我们最近从SQL Server 2014升级到SQL Server 2016,因此在执行repo后约15秒后,存储库获取EntityCommandExecutionException的InnerException为{"Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."}

我可以手动增加模型中的超时长度来解决这个问题,但这似乎很奇怪,因为这个repo在SQL Server升级之前工作正常。底层数据库/模型,我们检索的数据大小以及服务器设置也保持不变。是否有与使用EF 6& .NET 4.6.1与SQL Server 2016,我没有考虑到?

下面是带有硬编码连接字符串的代码,以查看是否有特别需要为SQL Server 2016修改的内容。

模型构造函数(作为解决方法增加了超时量)

public OperationsModel(string connectionString, bool lazyLoading = false)
        : base(connectionString)
    {
        Database.CommandTimeout = 500;
        Configuration.LazyLoadingEnabled = lazyLoading;
        Configuration.ProxyCreationEnabled = lazyLoading;
    }

方式

public void Example()
    {      
        //X'ed out the server and database, but those are correct
        using (var uow = new ModelManager(new OperationsModel("data source=XXXXX;initial catalog=XXXXX;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework\" providerName=System.Data.SqlClient")))
        using (var repo = new MyRepository(uow))
        {
            var test = repo.GetAll().ToList(); //Exception gets thrown here
        }
    }

0 个答案:

没有答案