2011-05-05 51 views
2

打开SQL连接时,我的作业似乎挂起。再现问题的一个例子如下:Powershell作业在打开SqlConnection时冻结

$myJob = start-job -ScriptBlock { 
    $connection_string = [string]::Format("Data Source={0};Initial Catalog={1};User ID={2}; Password={3};Connection Timeout=5", "my_sql_server", "my_database", "my_user", "my_password"); 
    $connection = New-Object System.Data.SqlClient.SqlConnection -ArgumentList $connection_string; 
    Write-Output "Opening Connection..."; 
    $connection.Open(); 
    Write-Output "Connection Opened!"; 
} 

当我看着$ myJob,它总是在运行,与输出“打开连接...”的状态。如果我在一个作业块之外运行相同的代码,它运行良好。

如何在作业中正确打开SqlConnection?

编辑

这里是$ myJob的属性:

PS C:\Documents and Settings\agprax>>> $myJob 

Id    Name   State  HasMoreData  Location    Command     
--    ----   -----  -----------  --------    -------     
3    Administrator Running True   localhost    ...  

这里是作业的输出:

PS C:\Documents and Settings\agprax>>> Receive-Job $myJob 
Opening Connection... 
+1

我在这里运行你的代码,它工作正常。还有一些你没有告诉的东西。 – 2011-05-05 03:21:03

+0

您可以报告在控制台上打印'$ myJob'时看到的信息吗?例如,请尝试'receive-job -job $ myJob'。 – 2011-05-05 05:33:06

+0

@empo请参阅编辑。 – 2011-05-05 16:11:39

回答

0

,您在运行什么操作系统这份工作?值得注意的是,在Connect上提交的错误似乎与您遇到的问题有关。

https://connect.microsoft.com/PowerShell/feedback/details/499499/adding-a-snapin-add-pssnapin-from-within-a-job-start-job-causes-job-to-hang-indefinitely

+0

你的链接似乎是一个非常类似的错误,我所拥有的。我试着在Windows XP Pro和Windows 2003 Server上运行这个脚本,结果相同。鉴于这个漏洞已经在近2年时间里发生了,并且只发生在XP和Windows 2003 Server上,我怀疑它会永远得到修复。 – 2011-06-17 16:09:10

相关问题