Перешел с 4.0 на версию библиотеки, которую выкачал из кодеплека сегодня утром (18.06.2012) Не могу понять что происходит. Если программа запущена из под отладчика VS то она успешно подсоединяется к квику. (правда работает 10 минут из-за проблем с лицензией, но это второй вопрос). Но если программу запустить из проводника, то получаю сообщение об ошибке, которое привожу на скрине
Подключаюсь вот так: if (quikPath.IsEmpty()) { const string Msg = "Путь к QUIK не установлен!"; MessageBox.Show(Msg, Resources.AttensionStr, MessageBoxButtons.OK, MessageBoxIcon.Information); }
this.quikTrader = new QuikTrader(quikPath).GuiSyncTrader(); // создаем шлюз к Quik-у и синхронизуем его this.logManager.Sources.Add(this.quikTrader.Trader);
Разумеется лог не создается. Помогите, пожалуйсто! Я спать хочу :-(
Что касается лицензии, то выкачал файл лицензии программой LicenseTool и поместил ее в каталог с программой. При запуске (из отладчика) получаю сообщение "ProcessIsDataError: The type initializer for 'StockSharp.Algo.Licensing.LicenseHelper' threw an exception."
Привожу лог:
13:45:01.820 | Error | QuikTrader | System.TypeInitializationException: The type initializer for 'StockSharp.Algo.Licensing.LicenseHelper' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Security.CryptoAlgorithm' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Reflection.Emit.AssemblyHolder' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Ecng.Configuration.ConfigManager' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System' or one of its dependencies. Не удается найти указанный файл.
at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)
at System.Configuration.MgmtConfigurationRecord.CreateSectionGroupFactory(FactoryRecord factoryRecord)
at System.Configuration.MgmtConfigurationRecord.EnsureSectionGroupFactory(FactoryRecord factoryRecord)
at System.Configuration.MgmtConfigurationRecord.GetSectionGroup(String configKey)
at System.Configuration.ConfigurationSectionGroupCollection.Get(String name)
at System.Configuration.ConfigurationSectionGroupCollection.<GetEnumerator>d__0.MoveNext()
at Ecng.Configuration.ConfigManager.<>c__DisplayClass4.<.cctor>b__1(ConfigurationSectionGroupCollection groups)
at Ecng.Configuration.ConfigManager..cctor()
--- End of inner exception stack trace ---
at Ecng.Configuration.ConfigManager.GetSection()
at Ecng.Reflection.Emit.AssemblyHolder..cctor()
--- End of inner exception stack trace ---
at Ecng.Reflection.Emit.AssemblyHolder.get_NeedCache()
at Ecng.Reflection.FastInvoker.CreateDelegate(Type delegType, Type instanceType, Type argType, ConstructorInfo ctor, MethodInfo method, MemberInfo member, Nullable1 isGetter) at Ecng.Reflection.FastInvoker.<>c__DisplayClass1.<CreateCore>b__0(MemberInfo ) at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler, Boolean& isNew) at Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler) at Ecng.Reflection.FastInvoker.CreateCore(MemberInfo member, Nullable1 isGetter)
at Ecng.Reflection.FastInvoker.Create(PropertyInfo property, Boolean isGetter)
at Ecng.Reflection.FastInvoker`3.Create(PropertyInfo property, Boolean isGetter)
at Ecng.Reflection.ReflectionHelper.GetValue[A,V](MemberInfo member, A arg)
at Ecng.Reflection.ReflectionHelper.GetValue[A,V](Type type, String memberName, BindingFlags flags, A arg)
at Ecng.Reflection.ReflectionHelper.GetValue[A,V](Type type, String memberName, A arg)
at Ecng.Security.CryptoAlgorithm..cctor()
--- End of inner exception stack trace ---
at Ecng.Security.CryptoAlgorithm.Create(AlgorithmTypes type, ProtectedKey[] keys)
at StockSharp.Algo.Licensing.LicenseHelper..cctor()
--- End of inner exception stack trace ---
at StockSharp.Algo.Licensing.LicenseHelper.IsLicenseSupport(Type featureType)
at StockSharp.Algo.BaseTrader..ctor(Boolean checkLicense)
Kommentare (22)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Не из гуя что-то делаете.
На главной форме кнопка и по нажатию на кнопку вызывается функция в которой
this.quikTrader = new QuikTrader(quikPath).GuiSyncTrader(); // создаем шлюз к Quik-у и синхронизуем его this.logManager.Sources.Add(this.quikTrader.Trader);
Все там больше ничего нет. Год работал код в таком виде, а сейчас под отладчиком есть соединение, а при запуске из проводника - ошибка
Хотя бы стэк трэйс ошибки укажите.
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text ************** System.InvalidOperationException: Current thread is not a GUI. at Ecng.Xaml.XamlHelper.get_CurrentThreadDispatcher() at StockSharp.Xaml.GuiObjectHelper.GuiSyncTrader(T trader) at StockDataProvider.StockDataProvider.QuikConnect(String quikPath, Button startDdeBtn) in C:\PROGTEST\TradeBot\StockDataProvider\StockDataProvider.cs:line 1464 at TradeFuckir.TradeFuckirMainForm.ConnectButtonClick(Object sender, EventArgs e) in C:\PROGTEST\TradeBot\TradeFuckir\TradeFuckirMainForm.cs:line 508 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.261 (RTMGDR.030319-2600) CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
TradeFuckir Assembly Version: 1.0.1.0 Win32 Version: 1.0.1.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/TradeFuckir.exe
System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.235 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
System Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.261 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
HistoricalDataLoader Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/HistoricalDataLoader.DLL
StockDataProvider Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/StockDataProvider.DLL
Visualisator Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Visualisator.DLL
TradeProtocol Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/TradeProtocol.DLL
System.Data Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.237 (RTMGDR.030319-2300) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.233 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.233 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
StockSharp.Algo Assembly Version: 4.1.2.0 Win32 Version: 4.1.2.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/StockSharp.Algo.DLL
Ecng.Common Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Common.DLL
StockSharp.BusinessEntities Assembly Version: 4.1.2.0 Win32 Version: 4.1.2.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/StockSharp.BusinessEntities.DLL
Ecng.ComponentModel Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.ComponentModel.DLL
DataProvider Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/DataProvider.DLL
Ecng.Collections Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Collections.DLL
PowerCollections Assembly Version: 1.0.2224.30206 Win32 Version: 1.0.2224.30206 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/PowerCollections.DLL
System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
System.Data.DataSetExtensions Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
System.Numerics Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
StockSharp.Quik Assembly Version: 4.1.2.0 Win32 Version: 4.1.2.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/StockSharp.Quik.DLL
Ecng.Interop Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Interop.DLL
System.Xml.Linq Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
ManagedWinapi Assembly Version: 0.3.0.0 Win32 Version: 0.3 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/ManagedWinapi.DLL
StockSharp.Xaml Assembly Version: 4.1.2.0 Win32 Version: 4.1.2.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/StockSharp.Xaml.DLL
Ecng.Serialization Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Serialization.DLL
System.Web Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.272 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
Microsoft.Practices.EnterpriseLibrary.Security.Cryptography Assembly Version: 5.0.505.0 Win32 Version: 5.0.505.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.DLL
System.Security Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Security/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Security.dll
Ecng.Security Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Security.DLL
Ecng.Reflection Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Reflection.DLL
Ecng.Configuration Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Configuration.DLL
Microsoft.Practices.Unity.Configuration Assembly Version: 2.1.505.0 Win32 Version: 2.1.505.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Microsoft.Practices.Unity.Configuration.DLL
Microsoft.Practices.Unity Assembly Version: 2.1.505.0 Win32 Version: 2.1.505.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Microsoft.Practices.Unity.DLL
Microsoft.Practices.ServiceLocation Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Microsoft.Practices.ServiceLocation.DLL
System.Transactions Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
System.Web.Mobile Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mobile/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.Mobile.dll
System.Web.Services Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Services/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll
System.Web.Extensions Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.272 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Extensions/v4.0_4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll
System.Runtime.Caching Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.237 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Caching/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Caching.dll
System.Runtime.Serialization Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
NDde Assembly Version: 2.1.563.0 Win32 Version: 2.01.0563.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/NDde.DLL
Ecng.Xaml Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/PROGTEST/TradeBot/TradeFuckir/bin/Debug/Ecng.Xaml.DLL
PresentationFramework Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.233 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
WindowsBase Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.233 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
PresentationCore Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.233 built by: RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
System.Xaml Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.1 built by: RTMRel CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled.
For example:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
Покажите методы
P.S. Просьба пользоваться подсветкой
public void QuikConnect(string quikPath, Button startDdeBtn) { this.startDdeButton = startDdeBtn;
private void ConnectButtonClick(object sender, EventArgs e) { this.stockDataProvider.QuikConnect(this.QUIKPath.Text, StartDDEButton); }
Просьба пользоваться подсветкой, дубль 2
samplesync работает?
Да! SampleSync работает! Я даже стесняюсь спросить, как делать подсветку ...
Тогда идите от изменения samplesync, смотрите где у вас не так. "Выберите тип подсветки кода" когда нажимаете ответить.
Сделал приложение из одной кнопки и одной функции Воспроизводится вышеописанная ситуация. Может быть это будет вам полезно? Использовал редакцию 17830
SampleSync работает => ошибка у вас. Идите от SampleSync и меняйте его под вас.
Либо обращайтесь в нашу техническую поддержку.
Да я никаких вам претензий не предявляю! Я всего лишь сделал WindowsForm приложение с нуля весь текст которого:
И воспроизвел ошибку, я согласен что у меня, но наверняка еще кто-нибудь тупо создаст приложение и влетит в такую же ситуацию как я.
Думаю, что GuiTrader писался не для Winforms, а для Wpf и работать с Winforms корректно он не будет.
В течении года работало корректно, а два дня назад с кодеплека взял библиотеку и начались небольшие шероховатости. Забавно, что под отладчиком работает, но только 10 минут. В каталог с программой лицензию скопировал, все равно через 10 минут прекращает работать приложение, но с этим потом разберусь. Дико устал
ITrader.ProcessDataError
Да, все аккуратно, я наслаждался жизнью. Вообще никаких нареканий!!!
ITrader.ProcessDataError Я чувствую некий намек, но не пойму что вы имели ввиду :-)
Может стоит чуток поспать? :)
Вопрос закрыт, переделал из WindowsForm приложения в WPF Работает аккуратно. Исчезли проблемы с синхронизацией времени и лицензией. Благодарю за помощь!