AWSSDK.core.dll Nehmen Sie beispielsweise einen fehlenden DLL -Fehler:
In das Verzeichnis C: \ Programme (x86) \ Microsoft SQL Server \ 130 \ dts \ Binn \ und umbenennen Sie AWSSDK.Core.dll zu um Awssdk.core.dll.bak . Auf diese Weise kann das System die DLL nicht zum Verknüpfen finden. Auf diese Weise können wir den Fehler für das Testen auf Visual Studio erzeugen, jedoch nicht auf der Bereitstellung von SQL Server. >
Wenn die Skriptaufgabe den folgenden Quellcode verwendet, ist Regionendpoint Region = RegionEndPoint.USEAST1; < /code> erfordert die AWS -Bibliothek, so Eine klare Anzeige. > at system.reflection.runtimemethodinfo.unsafeinvokeInternal (Objekt OBJ, Objekt [] Parameter, Objekt [] Argumente)
at system.reflection.runtimemethodinfo.invoke (Object OBJ, BindingFlags Invokeattr, Binder Binder, Objekt [] Parameter, CultureInfo -Kultur)
at system.runtimetype.invokemember (String -Name, BindingFlags BindingFlags, Bindemittelbindemittel, Objektziel, Objekt [] bereitgestelltesArgs, Parametermodifier [] Modifikatoren, CultureInfo -Kultur, String [] namensParams)
at microsoft.sqlserver.dts.tasks.scripttask.vstataScscriptingEngine.executscript ()
< /p>
< /Blockquote>
Code: Select all
public void Main()
{
try
{
RegionEndpoint region = RegionEndpoint.USEast1;
bool fireAgain = false;
Dts.Events.FireInformation(0, "Test", region.SystemName, string.Empty, 0, ref fireAgain);
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Error", ex.Message, string.Empty, 0);
throw;
}
Dts.TaskResult = (int)ScriptResults.Success;
}
< /code>
Wir sehen uns vor, eine Ausnahme von fehlender DLL zu sehen, und durch ein glückliches Zufall fanden wir eine Problemumgehung von 1) [url=viewtopic.php?t=12045]Ändern[/url] Sie die Funktionen in Async und 2) die funktionale Logik in eine andere Funktion zum Aufrufen einwickeln In der main ()
Code: Select all
#pragma warning disable CS1998
public async System.Threading.Tasks.Task Main()
#pragma warning restore CS1998
{
try
{
this.ScriptAction().GetAwaiter().GetResult();
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Error", ex.Message, string.Empty, 0);
throw;
}
Dts.TaskResult = (int)ScriptResults.Success;
}
#pragma warning disable CS1998
async System.Threading.Tasks.Task ScriptAction()
#pragma warning restore CS1998
{
RegionEndpoint region = RegionEndpoint.USEast1;
bool fireAgain = false;
Dts.Events.FireInformation(0, "Test", region.SystemName, string.Empty, 0, ref fireAgain);
}
< /code>
Unsere Frage < /h5>
Wir verstehen immer noch nicht, warum die obige Problemumgehung eine Ausnahme genau zurückgeben kann Fehlende DLL, z. B. [Datei nicht gefunden] Fehler: Eine erforderliche Montage fehlt: awssdk.core, Version = 3.3.0.0, Culture = neutral, PublicKeyToken = 885C28607f98e604