4.0.6 Trader.Connect() MethodAccessException
Atom
27.11.2011
Roman0


Заменил 4.0.5 на 4.0.6, внес изменения, нормально скомпилировалось, запускаю, Trader.Connect() выдает:

Attempt by security transparent method 'Ecng.Interop.WinApi.GetProcessId(ManagedWinapi.Windows.SystemWindow)' to call native code through method 'Ecng.Interop.WinApi.GetWindowThreadProcessId(IntPtr, Int32 ByRef)' failed.  Methods must be security critical or security safe-critical to call native code.
Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qui7SGkL$iNzM5199s$PjSQ==(IntPtr)' failed.  Methods must be security critical or security safe-critical to call native code.
System.MethodAccessException
Stack Trace:
   at #=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()
   at Ecng.Common.Disposable.Finalize()

После замены Ecng.*.dll на Change Set 11980 выдаваемое сообщение несколько изменилось:

Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=..ctor(System.String)' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qcmOMPVz4o0URNxOFjmfM4g==(System.String)' failed.  Methods must be security critical or security safe-critical to call native code.
Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qui7SGkL$iNzM5199s$PjSQ==(IntPtr)' failed.  Methods must be security critical or security safe-critical to call native code.
System.MethodAccessException
Stack Trace:
   at #=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()
   at Ecng.Common.Disposable.Finalize()

Добавление [assembly: SecurityRules(SecurityRuleSet.Level1)] и <NetFx40_LegacySecurityPolicy enabled="true"/> ничего не изменило. Подскажите, пожалуйста, что нужно поправить.


Теги:


Спасибо:


Alexander

Фотография
Дата: 27.11.2011
Ответить


К вечеру будет фикс. Переход на Net 4.0 не такой простой как хотелось бы :)

Спасибо:

Alexander

Фотография
Дата: 27.11.2011
Ответить


Залил исправленную версию на codeplex

Спасибо:

Roman0

Фотография
Дата: 27.11.2011
Ответить


Alexander Mukhanchikov: Залил исправленную версию на codeplex Да, заработало, спасибо!

Спасибо:

Roman0

Фотография
Дата: 27.11.2011
Ответить


И еще такой момент: как я понял, после первого неудачного Trader.Connect() с какой-то периодичностью предпринимаются попытки установить связь и вот во время этих попыток все исключения остаются unhandled. Есть ли какие-то варианты перехвата этих исключений (ну, кроме перехвата всех unhandled exceptions)? Может быть сообщения о таких ошибках через что-то вроде ProcessDataError выводить?

Спасибо:

InsiderHSE

Фотография
Дата: 27.11.2011
Ответить


Alexander Mukhanchikov: Залил исправленную версию на codeplex Скачал 11998, данная ошибка не пропала...

Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=..ctor(System.String)' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qcmOMPVz4o0URNxOFjmfM4g==(System.String)' failed. Methods must be security critical or security safe-critical to call native code.

Спасибо:

Alexander

Фотография
Дата: 27.11.2011
Ответить


InsiderHSE:

Alexander Mukhanchikov: Залил исправленную версию на codeplex Скачал 11998, данная ошибка не пропала...

Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=..ctor(System.String)' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qcmOMPVz4o0URNxOFjmfM4g==(System.String)' failed. Methods must be security critical or security safe-critical to call native code.

Не может быть. Делайте ребилд.

Спасибо:

InsiderHSE

Фотография
Дата: 27.11.2011
Ответить


Извиняюсь, забыл ребилд сделать. Все ок.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy