Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 螺纹可以';当主流程可以连接时,不要使用命名管道连接;使用用户名和密码_Multithreading_C# 4.0_Asp.net Mvc 4_Sql Server 2008 R2_Entity Framework 5 - Fatal编程技术网

Multithreading 螺纹可以';当主流程可以连接时,不要使用命名管道连接;使用用户名和密码

Multithreading 螺纹可以';当主流程可以连接时,不要使用命名管道连接;使用用户名和密码,multithreading,c#-4.0,asp.net-mvc-4,sql-server-2008-r2,entity-framework-5,Multithreading,C# 4.0,Asp.net Mvc 4,Sql Server 2008 R2,Entity Framework 5,我使用命名管道首先使用EF代码连接到数据库。它在正常的页面请求生命周期中工作正常 我正在生成一个单独的线程来发送一批电子邮件。该线程被传递一个连接字符串(名为pipe),并使用该连接字符串创建一个新的dbcontext。但由于某些原因,它无法连接: The underlying provider failed on Open. 如果我将连接字符串切换为username-password形式,线程工作正常 有人知道为什么命名管道在正常的页面执行中是好的,但不是线程 我们的暂存服务器是我们使用命名

我使用命名管道首先使用EF代码连接到数据库。它在正常的页面请求生命周期中工作正常

我正在生成一个单独的线程来发送一批电子邮件。该线程被传递一个连接字符串(名为pipe),并使用该连接字符串创建一个新的dbcontext。但由于某些原因,它无法连接:

The underlying provider failed on Open.
如果我将连接字符串切换为username-password形式,线程工作正常

有人知道为什么命名管道在正常的页面执行中是好的,但不是线程

我们的暂存服务器是我们使用命名管道的唯一非活动服务器,因此很难找到它,但它在新的DbContext上出错

示例代码:

        var contextConnectionString = dataAccessLayer.ConnectionString;

        Task.Factory.StartNew(() =>
        {
            // Errors on the next line I think
            using (var threadSafeDataAccessLayer = new PaladinContext(contextConnectionString))
            {
                ...
            }
        }
万一我在连接字符串中做错了什么,这里有一个失败的想法:

Data Source=[SERVERNAME]\[INSTANCE_NAME]; Initial Catalog=[correct db name];Integrated Security=SSPI; MultipleActiveResultSets=true
一个成功的例子是:

Data Source=[full url to server]; Initial Catalog=[correct db name]; User Id=[user]; Password=[password];MultipleActiveResultSets=true
只是重申一下,连接字符串仅在生成的线程中失败。这和我在其他地方用的一样

[更新] 在工作连接字符串中,更改数据源=[SERVERNAME][INSTANCE_NAME]不会停止其工作。所以这也可以使用。我不想让这成为一条红鲱鱼