• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Код ошибки 2 при вызове функций CheckIn и SaveChanges

Автор EP, 22.05.23, 11:07:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

EP

Здравствуйте, столкнулся со следующей проблемой: успешно открываю чеканут, вношу необходимые изменения, после чего выполняю функцию CheckIn или SaveChanges, но API возвращает код ошибки 2 с текстом "Отказано в доступе по пути \\?\UNC\lood2\loodfa\00000012\00000039\800166". После чего приходится заходить в клиент лоцман и возвращать из работы вручную. В чем может быть проблема?

Chaa


EP

Версия клиента лоцман 18.1.2.327;
Версия SDK от 2018.1, хотя введение от 25.06.2019, точно не знаю где версию посмотреть.

Chaa

Я так понимаю, что в клиенте все работает хорошо, а при работе через API возникает ошибка.

Различие в том, что клиент подключается к службе AsconPlmAppServer через WCF, а через API вы подключаетесь к службе AsconPlmAppServerNativerHost через DCOM.

Поэтому стоит проверить от имени какого пользователя запускается AsconPlmAppServerNativerHost (скорее всего должно быть с Системной учетной записью).

Ну и вызов CoInitializeSecurity нужен в вашем приложении.

Еще можно подключиться к серверу приложений так же, как это делает стандартный клиент, тут я писал про это:
https://forum.ascon.ru/index.php?topic=37632.msg305541#msg305541

EP

CoInitializeSecurity вызываю. В случае, если соединение организовывалось от имени другого пользователя, то я не смог бы открыть чекаут и внести изменения, правильно понимаю?

Не нашёл где находится объект Ascon.Plm.ServerApi.ConnectionFactory, это часть SDK?

Chaa

Судя по тексту ошибки у сервера приложений не хватает прав для изменения файлового архива. Так как из стандартного клиента все работает, получается права теряются где-то между:
Клиент -> Служба DCOM -> Служба сервера приложений.

Цитата: EP от 23.05.23, 10:27:50Не нашёл где находится объект Ascon.Plm.ServerApi.ConnectionFactory, это часть SDK?
Это часть стандартного клиента, при его установке объект устанавливается в GAC (Global Assembly Cache).

Еще можно попробовать добавить файл в LWF (http://uselwf.ru/), в нем есть выбор между DCOM и WCF (Инструменты - Настройка подключения).
Если в нем работает через DCOM, а у вас нет, значит проблема в вашем приложении.
Если в нем не работает, то значит проблема в настройках сервера приложений.

EP

Спасибо, всё исправил. Попробовал подключиться к системе с помощью LWF через DCOM, но программа сразу выругалась, что нет прав, поэтому переписал программу под соединение через WCF. Странно что я мог работать с системой и мог удалять и добавлять файлы в CheckOut без авторизации.

Chaa

С DCOM обычно проблема в настройке делегирования. То есть вы подключились к серверу приложений со своими правами, а сервер приложений затем подключается к другому серверу (БД или файловый) от вашего имени. И уже в это, второе, подключение ваши права не передаются.