Здравствуйте, Михаил.
Можете подсказать, пожалуйста, с чем может быть связана следующая проблема?
При вызове: var trader = new SmartTrader("<my_login>", "<my_password>"); получаю ошибку: 17.05.2010 0:05:46: ERROR: System.ComponentModel.Win32Exception: Отказано в доступе at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.Kill() at Ecng.Trading.Smart.SmartTrader.☻() at Ecng.Trading.Smart.SmartTrader..ctor(String login, String password, IPEndPoint endPoint, Boolean isAutoSaveOrders) at Ecng.Trading.Smart.SmartTrader..ctor(String login, String password, IPEndPoint endPoint) at Ecng.Trading.Smart.SmartTrader..ctor(String login, String password) at WealthLab.TradingSystemExecutor.Main(String[] args) in D:\home \HFT\MTS\WealthLab\WealthLab\base\TradingSystemExecutor.cs:line 74
Программу запускаю под администратором.
Comentarios (9)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
попробовал приконнектится к квику: var trader = new QuikTrader("C:\Program Files\Quik5\");
SmartTrader при старте убивает процесс SmartCOM2.exe (для предотвращения зависания). У Вас видимо прога не имеет прав к удалению этому процессу. Критично получить админские права на машину?
Спасибо! Я уже понял, что проблема не связана с вашим фреймворком.
Я работаю под администратором в Visual Studio 2008 Pro. Когда я запускаю программу из експлорера или в студии без дебага - процесс убивается нормально. Ошибка возникает только когда я запускаю программу в студии через "F5" (start debugging). Видимо при этом используется какая-то другая аутентификация.
Какая ОС?
winXP pro sp3
Если под debug права меняются, то рекомендую переставить VS. Антивирусов случаем никаких не стоит?
антивирус стоит, конечно. ладно, это пока не мегакритично. поразбираюсь попозже. как пофикшу - отпишусь сюда в чем была проблема.
Аналогичная проблема.
При запуске SmartSample в debug-режиме под Visual Studio 2008
получаю Win32Exception "Access Denied" at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.Kill() at Ecng.Trading.Smart.SmartTrader.KillSmartComProcess() at Ecng.Trading.Smart.SmartTrader.OnConnect()
Если пускать .exe файл - ошибки нет.
Специально воспроизвел эту ошибку вызывая из тестового приложения OpenProcess для notepad.exe и для smartcom2.exe Для первого все нормально даже в дебаге, для второго - под дебагом в VS - ошибка.
Порылся по форумам нашел решение (чтобы это ни значило, но работает). Чтобы убивать любые процессы надо своему процессу поставить SeDebugPriviledge
Для этого нашел классик - см код ниже. Для использования в SmartSample.MainWindow.MainWindow вставить Win32Helpers.SeDebugPriviledge.Enable();
Классик надо включить в проект примера.
Возможно Михаил включит в S# раз у нескольких людей такая ошибка вылетает
Студия наверное не из под привилегированного аккаунта запускается. А следовательно и debug.