Interop.MSScriptControl.dll
을 바꾸기 위해 CodeFluentRuntimeClient
을 사용하기 시작했습니다.CodeFluent.RunTime.Client.dll - AccessViolationException
나는 그것을 작동시키기 위해 약간의 tweeking으로 here을 성공시킨다.
우리는 프로덕션 환경에서 dll을 사용하기 시작했습니다. 우리가 설치 한 컴퓨터 중 하나 (Windows server 2012)에서 Sytem.AccessViolationException이 발생했습니다.
마 CodeFluent 다른 DLL을 requieres :
다음은 이벤트 뷰어의 스택 추적입니까?
편집
이 여기에 코드입니다 :
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
코드를 게시했습니다. BTW,이 코드는 많은 기계에서 작동합니다. 그것은 하나의 기계에서만 깨진다. – billybob
런타임의 코드는 기본적으로 여기에서 찾을 수있는 코드와 같습니다. http://stackoverflow.com/questions/4744105/parse-and-execute-js-by-c-sharp/24868314이 코드를 사용할 수 있습니까? 코드가 동일하게 실패하는지 확인하십시오. 그럴 경우 MarshalAs (UnmanagedType.LPWStr)]를 사용하여 ParseText의 문자열 매개 변수에 추가 할 수 있습니까? https://github.com/Taritsyn/MsieJavaScriptEngine/blob/master/src/MsieJavaScriptEngine/ActiveScript/IActiveScriptParse64 .cs –