Interop.MSScriptControl.dll
の代わりにCodeFluentRuntimeClient
を使用し始めました。CodeFluent.RunTime.Client.dll - AccessViolationException
私はそれを動作させるために少しtweekingすることによってhereに成功します。
私たちは本番環境でdllを使い始めました。私たちがインストールしたマシンの1つ(Windows server 2012)では、Sytem.AccessViolationExceptionが発生しています。ここで
は、イベントビューアのスタックトレースです:
ドゥCodeFluentは、他のDLLをrequieres?
EDIT
は、ここでは、コードです:
public dynamic EvaluateVBScript(string token, string key, string script, IDictionary<string, object> parameterValuePair = null)
{
try
{
using (ScriptEngine engine = new ScriptEngine(ScriptEngine.VBScriptLanguage))
{
List<object> parameters = new List<object>() { string.IsNullOrEmpty(token) ? string.Empty : ServiceManager.GetService<IServiceInstance>().GetService<IContextManager>(token).UserName };
string extraParameters = string.Empty;
if (parameterValuePair != null && parameterValuePair.Count > 0)
{
extraParameters = "," + string.Join(",", parameterValuePair.Select(e => e.Key));
foreach (var para in parameterValuePair)
parameters.Add(para.Value);
}
string parsedScript = string.Format(@"Function {0}(NecUserProfile {2})
{1}
End Function", key, script, extraParameters);
ParsedScript parsed = engine.Parse(parsedScript);
dynamic value = parsed.CallMethod(key, parameters.ToArray());
return (value != null) ? value.ToString() : string.Empty;
}
}
catch
{
throw;
}
}
スクリプトの解析と実行に使用するコードを投稿できますか? – meziantou
私はコードを掲載しました。ところで、このコードは多くのマシンで動作します。それは1つのマシンでのみ壊れます。 – billybob
ランタイムのコードは、ここで見つけることができるものと基本的に同じです:http://stackoverflow.com/questions/4744105/parse-and-execute-js-by-c-sharp/24868314コードとそれが同じ失敗するかどうか参照してください?そうであれば、ParseTextの文字列パラメータの周りにMarshalAs(UnmanagedType.LPWStr)を追加してみることができますか?https://github.com/Taritsyn/MsieJavaScriptEngine/blob/master/src/MsieJavaScriptEngine/ActiveScript/IActiveScriptParse64 .cs –