Closed JuliusChangGitHub closed 5 years ago
I have 0 clue since the module is for PowerShell, I have never use C# Script or called it from MSSQL.
On Sep 17, 2018, at 5:43 PM, JuliusChangGitHub notifications@github.com wrote:
env : renci.ssh.net 2016.1.0; C# script in SSDT/SSIS 2013 pro
I try to debug it by setting breakpoints on any sftp line, then it crashed VS.
I got this error message while executing it. I have no clue what this error about .
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
region Namespaces
using System; using System.Data; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; using System.IO.Compression; using Renci.SshNet; using Renci.SshNet.Sftp; using System.IO;
endregion
namespace ST_dd3c1d092f844d81b850123c967415b5 { ///
/// ScriptMain is the entry point class of the script. Do not change the name, attributes, /// or parent of this class. ///
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase {
region Help: Using Integration Services variables and parameters in a script
/* To use a variable in this script, first ensure that the variable has been added to
- either the list contained in the ReadOnlyVariables property or the list contained in
- the ReadWriteVariables property of this script task, according to whether or not your
- code needs to write to the variable. To add the variable, save this script, close this instance of
- Visual Studio, and update the ReadOnlyVariables and
- ReadWriteVariables properties in the Script Transformation Editor window.
- To use a parameter in this script, follow the same steps. Parameters are always read-only.
- Example of reading from a variable:
- DateTime startTime = (DateTime) Dts.Variables["System::StartTime"].Value;
- Example of writing to a variable:
- Dts.Variables["User::myStringVariable"].Value = "new value";
- Example of reading from a package parameter:
- int batchId = (int) Dts.Variables["$Package::batchId"].Value;
- Example of reading from a project parameter:
- int batchId = (int) Dts.Variables["$Project::batchId"].Value;
- Example of reading from a sensitive project parameter:
- int batchId = (int) Dts.Variables["$Project::batchId"].GetSensitiveValue();
*/
endregion
region Help: Firing Integration Services events from a script
/* This script task can fire events for logging purposes.
- Example of firing an error event:
- Dts.Events.FireError(18, "Process Values", "Bad value", "", 0);
- Example of firing an information event:
- Dts.Events.FireInformation(3, "Process Values", "Processing has started", "", 0, ref fireAgain)
- Example of firing a warning event:
- Dts.Events.FireWarning(14, "Process Values", "No values received for input", "", 0);
- */
endregion
region Help: Using Integration Services connection managers in a script
/* Some types of connection managers can be used in this script task. See the topic
- "Working with Connection Managers Programatically" for details.
- Example of using an ADO.Net connection manager:
- object rawConnection = Dts.Connections["Sales DB"].AcquireConnection(Dts.Transaction);
- SqlConnection myADONETConnection = (SqlConnection)rawConnection;
- //Use the connection in some code here, then release the connection
- Dts.Connections["Sales DB"].ReleaseConnection(rawConnection);
- Example of using a File connection manager
- object rawConnection = Dts.Connections["Prices.zip"].AcquireConnection(Dts.Transaction);
- string filePath = (string)rawConnection;
- //Use the connection in some code here, then release the connection
- Dts.Connections["Prices.zip"].ReleaseConnection(rawConnection);
- */
endregion
///
/// This method is called when this script task executes in the control flow. /// Before returning from this method, set the value of Dts.TaskResult to indicate success or failure. /// To open Help, press F1. /// public void Main() { // TODO: Add your code here //zip string pendingFolder = Dts.Variables["User::PendingFolder"].Value.ToString(); string zipFileName = Dts.Variables["User::ZipFileName"].Value.ToString(); ZipFile.CreateFromDirectory(pendingFolder, zipFileName, CompressionLevel.Optimal, false); //sftp string source = Dts.Variables["User::PGPFileName"].Value.ToString(); string destination = Dts.Variables["User::BrickRemoteLocation"].Value.ToString(); string host = Dts.Variables["User::BrickSite"].Value.ToString(); string username = Dts.Variables["User::BrickAccount"].Value.ToString(); string password = Dts.Variables["User::BrickPW"].Value.ToString(); ; int port = 22; //Port 22 is defaulted for SFTP uploadusing (SftpClient client = new SftpClient(host, port, username, password))
{ client.Connect(); client.ChangeDirectory(destination); using (FileStream fs = new FileStream(source, FileMode.Open)) { client.BufferSize = 4 * 1024; client.UploadFile(fs, Path.GetFileName(source)); } client.Disconnect(); } Dts.TaskResult = (int)ScriptResults.Success; }
region ScriptResults declaration
///
/// This enum provides a convenient shorthand within the scope of this class for setting the /// result of the script. /// /// This code was generated automatically. /// enum ScriptResults { Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success, Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure };endregion
} }
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/darkoperator/Posh-SSH/issues/228, or mute the thread https://github.com/notifications/unsubscribe-auth/AAf0HsBlfQ_FyOugnMkKWXFPLEA2SNmJks5ucBeAgaJpZM4WsxtF.
sorry, I post it on wrong place
env : renci.ssh.net 2016.1.0; C# script in SSDT/SSIS 2013 pro
1) I try to debug it by setting breakpoints on any sftp line, then it crashed VS.
2) I got this error message while executing it. I have no clue what this error about .
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
region Namespaces
using System; using System.Data; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; using System.IO.Compression; using Renci.SshNet; using Renci.SshNet.Sftp; using System.IO;
endregion
namespace ST_dd3c1d092f844d81b850123c967415b5 { ///
/// ScriptMain is the entry point class of the script. Do not change the name, attributes,
/// or parent of this class.
///
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
region Help: Using Integration Services variables and parameters in a script
//zip string pendingFolder = Dts.Variables["User::PendingFolder"].Value.ToString(); string zipFileName = Dts.Variables["User::ZipFileName"].Value.ToString(); ZipFile.CreateFromDirectory(pendingFolder, zipFileName, CompressionLevel.Optimal, false); //sftp string source = Dts.Variables["User::PGPFileName"].Value.ToString(); string destination = Dts.Variables["User::BrickRemoteLocation"].Value.ToString(); string host = Dts.Variables["User::BrickSite"].Value.ToString(); string username = Dts.Variables["User::BrickAccount"].Value.ToString(); string password = Dts.Variables["User::BrickPW"].Value.ToString(); ; int port = 22; //Port 22 is defaulted for SFTP upload
}