我如何启用MultipleActiveResultSets在应用程序上运行的设备与隔离插件

本文关键字:运行 程序上 插件 隔离 应用程序 应用 何启用 启用 MultipleActiveResultSets | 更新日期: 2023-09-27 18:18:34

在本地开发时,我有一个连接字符串集,MultipleActiveResultSets设置为TRUE。然而,当我部署我的应用程序和sequelizer connectionString被注入,MultipleActiveResultSets被遗漏。是否有任何方式使MultipleActiveResultSets或以其他方式更新连接字符串?

我使用实体框架4.1顺便说一下。

我如何启用MultipleActiveResultSets在应用程序上运行的设备与隔离插件

更新:现在可以通过使用Sequelizer管理面板为注入的连接字符串启用多个活动结果集(MARS)。这是推荐的方法,因为不再需要修改web.config,这会导致在启动期间重新加载AppDomain

您可以从注入到您的应用程序web.config的URI构造连接字符串。这里描述了这个过程,但我也包括下面的代码片段:

var uriString = ConfigurationManager.AppSettings["SQLSERVER_URI"];
var uri = new Uri(uriString);
var connectionString = new SqlConnectionStringBuilder
{
    DataSource = uri.Host,
    InitialCatalog = uri.AbsolutePath.Trim('/'),
    UserID = uri.UserInfo.Split(':').First(),
    Password = uri.UserInfo.Split(':').Last(),
    MultipleActiveResultSets = true,
}.ConnectionString;

注意MultipleActiveResultSets = true

如果您还需要构建一个非代码优先的连接字符串,那么您需要使用EntityConnectionStringBuilder的其余部分,例如:

var builder = new EntityConnectionStringBuilder();
builder.ProviderConnectionString = connectionString;
builder.Metadata = "somemetadata";
builder.Provider = "System.Data.SqlClient";

(也在apphor支持论坛上回答)