0

我的代码中有两种方法。两种方法,连接同一个DB,执行同一个SP,根据输入字符串返回数据

GetData("xxx");

GetData("xyz");

当我一一调用这些方法时,它工作正常。但是当我尝试使用单独的线程运行这些方法时,它给出了

Message: "Login failed. The login is from an untrusted domain and cannot be used with Windows authentication."
Number: 18452

为什么这仅通过线程发生,我该如何解决?请帮忙。

这是我的连接字符串

"server=DBServer;database=DataBaseName;Integrated Security=SSPI;Pooling=True"/>"
4

1 回答 1

0

主要是推测性的猜测,但这可能意味着您没有正确地模拟线程中的正确上下文。很可能您的 ASP.Net 线程正在模拟调用者,但您手动启动的线程却没有。您需要获取主线程的身份并将其传递给并发线程并在这些工作线程中模拟它。如果没有这种预防措施,您的工作线程将在应用程序池标识下运行。

但真正的要点是……你完全不需要这样做。如果要并行发出多个调用,请设置AsynchronousProcessingtrue并使用BeginExecuteReader. 这样,您可以有多个请求(在单独的连接上,仍然!)并行执行,而不必担心模拟。

于 2013-01-09T08:32:24.647 回答