je le code PowerShell suivant:Sql Server délai de connexion SMO ne fonctionne pas
function Get-SmoConnection
{
param
([string] $serverName = "", [int] $connectionTimeout = 0)
if($serverName.Length -eq 0)
{
$serverConnection = New-Object `
Microsoft.SqlServer.Management.Common.ServerConnection
}
else
{
$serverConnection = New-Object `
Microsoft.SqlServer.Management.Common.ServerConnection($serverName)
}
if($connectionTimeout -ne 0)
{
$serverConnection.ConnectTimeout = $connectionTimeout
}
try
{
$serverConnection.Connect()
$serverConnection
}
catch [system.Management.Automation.MethodInvocationException]
{
$null
}
}
$connection = get-smoconnection "ServerName" 2
if($connection -ne $null)
{
Write-Host $connection.ServerInstance
Write-Host $connection.ConnectTimeout
}
else
{
Write-Host "Connection could not be established"
}
Il semble fonctionner, sauf pour la partie qui tente de définir le délai d'attente de connexion SMO. Si la connexion réussit, je peux vérifier que ServerConnection.ConnectTimeout est défini sur 2 (secondes), mais lorsque je fournis un nom bidon pour l'instance SQL Server, il tente toujours de s'y connecter pendant ~ 15 secondes (ce qui est je crois la valeur du délai d'expiration par défaut).
Est-ce que quelqu'un a de l'expérience avec le réglage du délai de connexion SMO? Merci d'avance.
Merci pour tester mon code. En attendant, j'ai essayé un équivalent en C# - régler le délai et essayer de se connecter à un serveur non existant, et cela fonctionne. Je vais devoir tester le script PowerShell sur une autre machine, mais je pense que ça marchera aussi - je n'ai aucune idée de ce que j'aurais pu faire pour gâcher mon ordinateur de test et ça me rend fou. –