嗨,当我构建解决方案时,它很好,但在执行期间失败,跟随错误:
at System.RuntimeMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments) 在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化) at 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; }
}
答案 0 :(得分:0)
我认为库未在GAC注册,何时执行SSIS从TEMP复制并运行。从那里调用外部库并查看系统变量中的已注册位置“路径”。尝试修改它但无法重启机器 - 没有Microsoft SDK的服务器。所以不要再看到那个
的解决方案了答案 1 :(得分:0)
尝试更换
JsonConvert.DeserializeObject<JSONElements>(dataResponse);
使用
System.Web.Script.Serialization.JavaScriptSerializer serial = new System.Web.Script.Serialization.JavaScriptSerializer();
JSONElements incoming = serial.Deserialize<JSONElements>(dataResponse);