嗨,当我构建解决方案时,它很好,但在执行过程中,它失败了,以下错误:
在System.RuntimeMethodHandle。调用方法(对象目标,对象[]参数,签名签名,布尔构造函数)在System.Reflection.RuntimeMethodInfo。UnsafeInvokeInternal(对象obj,对象[]参数,对象[]参数)在System.Reflection.RuntimeMethodInfo。调用(对象obj, BindingFlags invokeAttr, Binder, Binder, Object[] parameters, CultureInfo culture)在System.RuntimeType。InvokeMember(String name, BindingFlags BindingFlags, Binder Binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)在Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript ()
我将提到我成功地在SSIS
和JavaScriptSerializer Deserializer
中运行它。
不确定我做错了什么?
为.Net40
类添加外部引用(对于SQL
服务器2012
似乎是正确的)。
任何建议吗?
代码示例如下:
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
// dataResponse looks like that {"access_token":"bla","expires_in":222}
// Old Code
// JSONElements elements = new JavaScriptSerializer().Deserialize<JSONElements>(dataResponse);
JSONElements elements = JsonConvert.DeserializeObject<JSONElements>(dataResponse);
}
public class JSONElements
{
public string access_token { set; get; }
public int expired_in { set; get; }
}
尝试替换
JsonConvert.DeserializeObject<JSONElements>(dataResponse);
System.Web.Script.Serialization.JavaScriptSerializer serial = new System.Web.Script.Serialization.JavaScriptSerializer();
JSONElements incoming = serial.Deserialize<JSONElements>(dataResponse);
我认为是库没有在GAC注册,当执行SSIS复制并从TEMP运行时,从那里调用外部库并在系统变量中的注册位置"路径"中查看。尝试修改它,但不能重新启动机器-它的服务器没有微软SDK。没有其他的解决方案了