2

我在 ASP.NET 4 中有一个网站,需要使用 Parallelism 连接到 SQL Server 2008 R2,还使用 ​​IIS 7 和 Windows 身份验证,我使用Parallel.Foreach表达式,当我使用Foreach一切都很好,但Parallel.Foreach我得到一个错误:Login failed for user: 'IIS APPPOOL\\MyAppPool'.,所以经过一番搜索,我发现需要将应用程序池中的流程模型标识从ApplicationPoolIdentity更改为LocalSystem

在此处输入图像描述

或者我可以添加特定用户:

在此处输入图像描述

但最后一个不是一个适当的解决方案。

所以我检查 SQL SPs 修改它并添加行:

在此处输入图像描述

然后结果是:当我使用foreach(意味着没有并行性)时,所有注册用户都是MyLoginUser但使用Parallel.foreach(和LocalSystem身份)注册的第一个用户是MyLoginUser,其他用户是NT Authority System

我也发现了Parallel Impersonation但也没有工作,我得到了同样的错误。

据我了解MyLoginUser,没有Multi Connect to sql的权限,对吗?

如果是,那么如何向该用户添加权限?

最后我尝试使用ApplicationPoolIdentityMyLoginUser使用 Parallelism 连接到 SQL。有人有什么建议吗?

更新:

我发现与db的第一个连接是MyLoginUser然后ASP.NET尝试连接更多并让ApplicationPool这样做,但是applicationpool无法登录,因为没有权限,我也不想让它,唯一的用户可以连接必须是myloginuser.

所以问题可能是:

如何配置IISASP.NET以使用myloginuser(与第一个用户相同)连接到 db 的所有连接(也在并行连接中)?

4

0 回答 0