2015-03-26 3 views
7

nuget इंस्टॉलर का उपयोग कर WinSCP .NET स्थापित किया गया है।एसएसआईएस पैकेज के साथ Winscp System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (ऑब्जेक्ट obj, ऑब्जेक्ट [] पैरामीटर, ऑब्जेक्ट [] तर्क)

विजुअल स्टूडियो 2013

लघु उद्योगों BIDS 2012

परियोजना संदर्भ सही हैं - DLL स्थापित किया गया था कि

परियोजना एक स्क्रिप्ट WinSCP से नमूना कोड का एक नीचे छीन संस्करण है जिसमें की ओर इशारा करते साइट। पहली पंक्ति पर विफल रहता है जो सत्र ऑप्शन ऑब्जेक्ट को तुरंत चालू करने का प्रयास करता है। यदि मैं सत्र ऑप्शन ऑब्जेक्ट को हटा देता हूं तो यह ठीक है।

पंजीकृत निर्देशों के अनुसार जीएसी में winscpnet.dll पंजीकृत।

दृश्य स्टूडियो SSIS डीबगर में शुरू स्क्रिप्ट, इस मिल:

System.RuntimeMethodHandle.InvokeMethod पर (वस्तु लक्ष्य, वस्तु [] तर्क, हस्ताक्षर sig, बूलियन निर्माता) System.Reflection.RuntimeMethodInfo पर .UnsafeInvokeInternal (वस्तु obj, वस्तु [] पैरामीटर, वस्तु [] तर्क) System.Reflection.RuntimeMethodInfo.Invoke पर सिस्टम पर
(वस्तु obj, BindingFlags invokeAttr, बाइंडर बांधने की मशीन, [] पैरामीटर, CultureInfo संस्कृति वस्तु)। RuntimeType.InvokeMember (स्ट्रिंग नाम, बाइंडिंगएफ BindingFlags, बाइंडर बांधने की मशीन, वस्तु लक्ष्य, वस्तु [] providedArgs, ParameterModifier [] संशोधक, CultureInfo संस्कृति, String [] Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() पर namedParams)

lags प्रवाह और प्रक्रिया के
public void Main() 
    { 

     SessionOptions sessionOptions = new SessionOptions 
     { 
      Protocol = Protocol.Sftp, 
      // To setup these variables, go to SSIS > Variables. 
      // To make them accessible from the script task, in the context menu of the task, 
      // choose Edit. On the Script task editor on Script page, select ReadOnlyVariables, 
      // and tick the below properties. 
      HostName = "", 
      UserName = "", 
      Password = "", 
      SshHostKeyFingerprint = "" 
     }; 

      bool fireAgain = false; 

     Dts.Events.FireInformation(0, null, 
         string.Format("Upload of succeeded"), 
         null, 0, ref fireAgain); 



      Dts.TaskResult = (int)DTSExecResult.Success; 
    } 

जोड़ना screencaps

Heres the package Script details Error when I run it Debug spew

अद्यतन: कोड के रूप में निम्नानुसार ... ठीक उसी परिणाम संशोधित

 public void Main() 
    { 
     bool fireAgain = false; 

     try 
     { 
      SessionOptions sessionOptions = new SessionOptions 
      { 
       Protocol = Protocol.Sftp, 
       // To setup these variables, go to SSIS > Variables. 
       // To make them accessible from the script task, in the context menu of the task, 
       // choose Edit. On the Script task editor on Script page, select ReadOnlyVariables, 
       // and tick the below properties. 
       HostName = "", 
       UserName = "", 
       Password = "", 
       SshHostKeyFingerprint = "" 
      }; 
     } 
     catch (Exception ex) 
     { 

      Dts.Events.FireInformation(0, null, 
          ex.InnerException.Message, 
          null, 0, ref fireAgain); 
     }    

      Dts.TaskResult = (int)DTSExecResult.Success; 
    } 
+0

मुझे लगता है कि अपवाद में कुछ टेक्स्ट/संदेश और प्रकार है। आपने हमारे साथ केवल एक कॉलस्टैक साझा किया है। –

+0

एसएसआईएस एक संदेश बॉक्स "डीटीएस स्क्रिप्ट कार्य: रनटाइम त्रुटि" प्रोजेक्ट का नाम पॉप करता है: ब्लाह "अपवाद के लक्ष्य से अपवाद फेंक दिया गया है", कॉल स्टैक नीचे दिए गए टेक्स्ट एरिया में है - सुंदर मानक सामान और अन्य SO के साथ संगत पोस्ट (और अन्य जगहों पर पोस्ट) जो एसएसआईएस –

+0

के तहत विनसिप का उपयोग करने के साथ मुद्दों को नोट करते हैं, "अपवाद के लक्ष्य से अपवाद को फेंक दिया गया है" के बारे में सभी पदों में मैं वास्तविक अपवाद के बारे में जानकारी देख सकता हूं। –

उत्तर

10

जब तीसरे पक्ष DLL लघु उद्योगों स्क्रिप्ट कार्य में प्रयोग किया जाता है हम GAC प्रदर्शन करने की जरूरत है।

कृपया कमांड प्रॉम्प्ट खोलें।

cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools"

आदेश के बाद चलाएँ।

gacutil -i <"Path of WinSCP DLL">

GAC आदेश स्क्रिप कार्य अपेक्षित तरीके से चलना चाहिए चलाने के बाद। रनटाइम पर एसएसआईएस डीएलएल संदर्भ प्राप्त करने में असमर्थ है और यह इस त्रुटि का कारण है।

आशा है कि यह काम करता है !!

+0

@ निकी..वॉट हो गया .. कई घंटों के संघर्ष के बाद धन्यवाद और कई Google ने इस मुद्दे को हल नहीं किया ... और आखिर में आपके कदम, मेरे लिए यह रेन्सी.शनेट डीएल का संदर्भ दिया गया था, गैकुटिल में इसे जोड़ने के लिए इसे हल किया गया था। – AKS

+0

मुझे एक ही त्रुटि का सामना करना पड़ रहा है। मैं इस WinSCP.dll की तलाश में हूं, और मुझे नहीं पता कि यह कहां है। मुझे इसका रास्ता कहां मिल सकता है? मैं एसएसआईएस और विजुअल स्टूडियो 2015 –

+0

एनबी का उपयोग कर रहा हूं। जीएसी में जोड़े जाने के लिए असेंबली पर हस्ताक्षर करने की भी आवश्यकता होगी। –

संबंधित मुद्दे