← Zurück

исключение "отказано в доступе"

Доброго времени суток. Помогите решить проблему. На компе установлен SmartCom 2. при тестировании примера SampleSmart (stocksharp 2.4) получаю исключение "отказано в доступе", при тестировании примера SampleSmarConsole удаётся подключиться один раз, при последующих попытках подключения получаю аналогичное исключение. Проблема с консольным приложением "решается" перезагрузкой компьютера. (Подключаюсь к демосерверу, логин и пароль ввожу корректно. )

War dieses Thema hilfreich?

Thema teilen

Kommentare (21)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

alexandro: Доброго времени суток. Помогите решить проблему. На компе установлен SmartCom 2. при тестировании примера SampleSmart (stocksharp 2.4) получаю исключение "отказано в доступе", при тестировании примера SampleSmarConsole удаётся подключиться один раз, при последующих попытках подключения получаю аналогичное исключение. Проблема с консольным приложением "решается" перезагрузкой компьютера. (Подключаюсь к демосерверу, логин и пароль ввожу корректно. )

Версию SmartCom 2.0 начал поддерживать лишь Stock# 2.5. Попробуй с ним потестировать

Mikhail Sukhov
Mikhail Sukhov

alexandro: Доброго времени суток. Помогите решить проблему. На компе установлен SmartCom 2. при тестировании примера SampleSmart (stocksharp 2.4) получаю исключение "отказано в доступе", при тестировании примера SampleSmarConsole удаётся подключиться один раз, при последующих попытках подключения получаю аналогичное исключение. Проблема с консольным приложением "решается" перезагрузкой компьютера. (Подключаюсь к демосерверу, логин и пароль ввожу корректно. )

Приведите полный текст ошибки. Есть подозрение, что учетка, из под которой открывается программа, не имеет доступ к процессу Смарта. А это необходимо. Или понижайте учетку для смарта, или запускайте прогу например из под админа. Причина - SmartTrader перед подсоединение перезапускает процесс SmartCOM (из-за того, что тот любит мертво зависать).

alexandro
alexandro Autor

Всем спасибо за помощь! Всё оказалось проще, чем я думал. Висел процесс смарткома, который и блокировал мои коннекты.

Mikhail Sukhov
Mikhail Sukhov

alexandro: Всем спасибо за помощь! Всё оказалось проще, чем я думал. Висел процесс смарткома, который и блокировал мои коннекты.

SmartTrader умеет отслеживать такие вещи. Конкретнее, смарт ком завис в процессе работы или в момент коннекта?

alexandro
alexandro Autor

SmartTrader умеет отслеживать такие вещи. Конкретнее, смарт ком завис в процессе работы или в момент коннекта? SmartTrader не был запущен в тот момент когда я тестировал код код примера SampleSmart. Процесс SmartCom2 оставался висеть после завершения работы примера SampleSmart.

Mikhail Sukhov
Mikhail Sukhov

SmartTrader умеет отслеживать такие вещи. Конкретнее, смарт ком завис в процессе работы или в момент коннекта? SmartTrader не был запущен в тот момент когда я тестировал код код примера SampleSmart. Процесс SmartCom2 оставался висеть после завершения работы примера SampleSmart.

SmartTrader создается, но не запускается. Имелось ввиду СмартКОМ? Тогда SmartTrader в методе Connect должен запустить сам SmartCOM.

xtonic
xtonic

Здравствуйте, столкнулся с такой же ошибкой. Суть в том что при первом запуске примера все вроде работает, потом я нажимаю "отключиться", закрываю окно примера, но в процессах остается висеть smartcom2.exe и при повторном запуске робота получаю "откзано в доступе", приходится каждый раз убивать вручную этот процесс. В примере вроде прописан такой кусок, может еще что-то добавить чтобы smartcom вычищался ?


protected override void OnClosing(CancelEventArgs e)
		{
            if (_manager != null)
                _manager.Dispose();

            if (_trader != null)
            {
                _trader.StopExport();
                _trader.Dispose();
            }

           base.OnClosing(e);
}


Mikhail Sukhov
Mikhail Sukhov

xtonic: В примере вроде прописан такой кусок, может еще что-то добавить чтобы smartcom вычищался ?

Дать роботу права, чтобы он мог убивать процесс СмартКом.

xtonic
xtonic

Прошу прощения за нубский вопрос, но как это сделать ? Поиск по интернету скуп на информацию, все предложенные там способы либо не работают, либо совсем какие-то экзотические. Вообще страано это выглядит что робот сам создает процесс, а потом не может его погасить.

Mikhail Sukhov
Mikhail Sukhov

xtonic: Прошу прощения за нубский вопрос, но как это сделать ? Поиск по интернету скуп на информацию, все предложенные там способы либо не работают, либо совсем какие-то экзотические.

Какая ОС и какие решения были?

xtonic: Вообще страано это выглядит что робот сам создает процесс, а потом не может его погасить.

Так устроен COM сервер.

xtonic
xtonic

ОС XP, пробовал давать права через process explorer, также была рекомендация написать сервис, который будет убивать комовский процесс, но это мне показалось уже слишком.

Mikhail Sukhov
Mikhail Sukhov

xtonic: ОС XP, пробовал давать права через process explorer, также была рекомендация написать сервис, который будет убивать комовский процесс, но это мне показалось уже слишком.

Работайте из под админского аккаунта.

ig0r
ig0r

У меня тоже выпадает System.ViolationException Попытка чтения или записи в защищенную память. но не при коннекте а при попытке получить историю. при этом соединение успешно проходит, выставляются ордера..

операционка XP SP3 работаю под админом.

Mikhail Sukhov
Mikhail Sukhov

ig0r: У меня тоже выпадает System.ViolationException Попытка чтения или записи в защищенную память. но не при коннекте а при попытке получить историю. при этом соединение успешно проходит, выставляются ордера..

операционка XP SP3 работаю под админом.

Картинку не видно, но тип исключения вижу впервые. Это пример или своя программа?

ig0r
ig0r

Картинку не видно, но тип исключения вижу впервые. Это пример или своя программа?

Это пример SampleSmartSma

Писал и свой пример на основе SampleSmartConsole, добавил получение исторических данных и он тоже стал падать с таким исключением.

Ниже стектрейс ошибки при работе стандартного примера SampleSmartSma. Исключение вызывает метод: _trader.RegisterHistoryData(_lkoh, SmartTimeFrames.Minute5, new Range<DateTime>(DateTime.Today - TimeSpan.FromDays(5), _trader.MarketTime));

System.AccessViolationException. Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. в StClientLib.StServerClass.GetBars(String symbol, StBarInterval interval, DateTime since, Int32 count) в Ecng.Trading.Smart.SmartComWrapper.<>c__DisplayClass6c.<RegisterHistoryBars>b__6b(StServer server) в Ecng.Trading.Smart.SmartComWrapper.Do(Action1 action) в Ecng.Trading.Smart.SmartComWrapper.RegisterHistoryBars(String securityId, SmartTimeFrames timeFrame, DateTime from, Int32 count) в Ecng.Trading.Smart.SmartTrader.RegisterHistoryData(Security security, SmartTimeFrames timeFrame, DateTime from, Int32 count, SmartHistoryDirections direction) в Ecng.Trading.Smart.SmartTrader.RegisterHistoryData(Security security, SmartTimeFrames timeFrame, Range1 range) в SampleSmartSMA.MainWindow.Start_Click(Object sender, RoutedEventArgs e) в D:\Proj\Trading\StockSharp_2.6.2_Sources\Sources\SampleSmartSMA\MainWindow.xaml.cs:строка 304 в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick() в System.Windows.Controls.Button.OnClick() в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) в System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e) в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) в System.Windows.Input.InputManager.ProcessStagingArea() в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

Некоторое время назад попытался использовать Stock# в своем проекте, но столкнулся с этой проблемой и решил писать робота на основе SmartCOM без использования Stock#. Но со временем опять возникло желание использовать вашу разработку, и опять таже проблема меня останавливает, сам не могу найти причину, помогите разобраться? :-)

Mikhail Sukhov
Mikhail Sukhov

Картинку не видно, но тип исключения вижу впервые. Это пример или своя программа?

Это пример SampleSmartSma

System.AccessViolationException. Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. в StClientLib.StServerClass.GetBars(String symbol, StBarInterval interval, DateTime since, Int32 count)

Некоторое время назад попытался использовать Stock# в своем проекте, но столкнулся с этой проблемой и решил писать робота на основе SmartCOM без использования Stock#.

Выделенное говорит о том, что ошибка в СмартКом. Так что переход вряд ли поможет.

Приведи значения, что Вы передаете в SmartTrader.RegisterHistoryData(Security security, SmartTimeFrames timeFrame, Range`1 range)

ig0r
ig0r

Mikhail Sukhov: Приведи значения, что Вы передаете в SmartTrader.RegisterHistoryData(Security security, SmartTimeFrames timeFrame, Range`1 range)

Вызов выглядит так: _trader.RegisterHistoryData(_lkoh, SmartTimeFrames.Minute5, new Range<DateTime>(DateTime.Today - TimeSpan.FromDays(5), _trader.MarketTime));

_lkoh - Security (инициализируется самим примером, ну судя по всему значение нормальное т.к. предшествующая строка _trader.RegisterTrades(_lkoh); - выполняется)

DateTime.Today = "01.02.2011 0:00:00" _trader.MarketTime = "01.02.2011 14:16:40"

Вобщем все значения по умолчанию, как были в примере, я ничего не менял.

Mikhail Sukhov
Mikhail Sukhov

ig0r: Вобщем все значения по умолчанию, как были в примере, я ничего не менял.

Запустил пример, отработал штатно. Что за сервер? СмартКом последний установлен?

ig0r
ig0r

Mikhail Sukhov:

ig0r: Вобщем все значения по умолчанию, как были в примере, я ничего не менял.

Запустил пример, отработал штатно. Что за сервер? СмартКом последний установлен?

Демо сервер. Смартком 2 стоит, насколько последний не знаю.. Попробую сейчас качнуть последний и переустановить.

Добавлено: Снес SmartTrade, SuperTrade, SmartCOM2 заново установил SmartCOM2

Проблема решилась. Теперь работает. Спасибо.

a.dobryn
a.dobryn

Наткнулась на такую же проблему, причем проявляется она только в связке с обычным квиком, с квик джуниором все в порядке. Версия одинаковая. Ошибка вылетает при попытке DDE-коннекта, где конкретнее, проследить не могу, так как это дело запускается в винде 2003 сервер по удаленке, у меня на компьютере с XP SP2 все в порядке

a.dobryn
a.dobryn

мда, проблема решена - надо было при старте коннекта DDE в квике переходить на главную вкладку