Могу ли я создать новый AppDomain без удаленного контекста вызова?
У нас есть код, который создает новый домен приложения для выполнения ненадежных вычислений.
Мы сталкиваемся с исключением сериализации, создающим новый домен приложения из-за некоторых данных, которые хранятся в:
System.Runtime.Remoting.Messaging.CallContext
Нам удалось убедиться, что очистка данных перед созданием домена приложения устранила проблему.
System.Runtime.Remoting.Messaging.CallContext.SetData( "USER_ACTIONS_LOGGED", null);
Но мне интересно, есть ли способ создать новый домен приложения, чтобы он не использовал существующий удаленный CallContext?
В противном случае мы, вероятно, можем попытаться получить данные, очистить их и восстановить позже. Но это кажется далеким от идеала.
Наше исключение:
System.Runtime.Serialization.SerializationException
HResult=0x8013150C
Message=Type is not resolved for member 'PL.Data.UserActions.ButtonAction,PLDefinition...'.
Source=mscorlib
StackTrace:
at System.AppDomain.InternalCreateInstanceFromWithNoSecurity(String assemblyName, String typeName)
at CodeDOMScripting.Sandboxer.RunSandboxed(String fullPathToCompiledDll, String className, String methodName, List`1 parameterNames, List`1 parameters, Int32& refCalctime, String& traceMessagesString)
This exception was originally thrown at this call stack:
[External Code]
CodeDOMScripting.Sandboxer.RunSandboxed(string, string, string, System.Collections.Generic.List<string>, System.Collections.Generic.List<System.AddIn.Contract.RemoteArgument>, ref int, ref string) in Sandboxer.cs