Имя: Пароль:
1C
1С v8
Не срабатывает регламентное задание. COM-соединение.
0 Tro2001
 
25.12.15
17:39
Окружение:
1С:Предприятие 8.3 (8.3.6.2299)
УТ для Украины, редакция 2.3.
Windows Server 2012 R2 Standart

Есть регламентное задание обмена с сайтом, которое работает через библиотеку syncservice.dll. Эта dll лежит в папке с полными правами для всех и зарегистрирована через:

regasm.exe C:\cm\dll\SyncService\syncservice.dll /codebase
ngen.exe C:\cm\dll\SyncService\syncservice.dll

При запуске обмена руками - все в порядке, но при выполнении регламентного задания вылазит ошибка:
"Ошибка : Ошибка создания объекта внешней компоненты: AddIn.SyncService{ОбщийМодуль.cm_ОбменССайтом.Модуль(3839)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован"

Предположил что проблема с COM-соединением и пробовал руками создавать COM+ соединение по советам (Регламентное задание: не всегда создается COMConnector) и нескольким еще аналогичным - не помогает.

Прошу подсказать.
1 Tro2001
 
25.12.15
17:40
Доп.информация.
Толстый клиент.
SQL Server 2012
2 Greeen
 
25.12.15
17:42
Сервер 1С и клиенты на одном компьютере?
3 Tro2001
 
25.12.15
17:43
ДА
4 olegves
 
25.12.15
17:46
(0) пользователь, под которым запущен сервер 1С не имеет доступа к папке: C:\cm\dll\SyncService\
5 Tro2001
 
25.12.15
17:47
C:\cm\dll\SyncService\ - NTFS права установлены полные для ВСЕХ
6 Serginio1
 
25.12.15
17:47
Если сервер 64 разрядный нужно регистрировать из папки
\Windows\Microsoft.NET\Framework64\v4.0.30319\
7 Serginio1
 
25.12.15
17:49
Ну и библиотека должна быть скомпилирована под AnyCpu
8 olegves
 
25.12.15
17:49
(0) длл СОМ-коннектора зарегистрирована?
9 Tro2001
 
25.12.15
17:51
(8) Прошу поподробнее
10 Tro2001
 
25.12.15
17:52
(7) Если в ручном запускается, наверно нормально....
11 Tro2001
 
25.12.15
17:55
(6) т.е. эта библиотека в любом случае должна там лежать ?, просто от разрабов осталась инструкция: скопировать в корень С с сохранением путей - дать полные права и зарегить способом - описанным в шапке.
12 Serginio1
 
25.12.15
17:56
(10) Вручную это как? Если с клиента то там 32 разрядная. Если с сервера, то тогда ошибки ищи в DCOM
13 Serginio1
 
25.12.15
17:57
Хотя если с сервера запускается, то и в регламентном задании должна
14 Tro2001
 
25.12.15
18:05
(12) Вручную - это в 1С в спец.обработке нажимаю кнопку, которая запускает обмен
15 Tro2001
 
25.12.15
18:07
(13) Вот именно....что и непонятно
16 Tro2001
 
25.12.15
18:17
Что ручной запуск, что регламент - обращаются к одной и то-же процедуре
17 Serginio1
 
25.12.15
19:42
(16)  Еще раз сервер 64 разрядный?
Обращаются к одной процедуре, только из разных разрядных процессов.
  Ты слушай, что тебе говорят.
Зарегистрируй RegAsm из папки (6)
ngen в той же папке лежит.
18 Tro2001
 
25.12.15
20:05
(17) Да, Сервер х64.
Т.е. мне нужно syncservice.dll положить в

\Windows\Microsoft.NET\Framework64\v4.0.30319\

и зарегистрировать ее там ?
19 Tro2001
 
25.12.15
20:14
(17)
в таком случае что прописать в батнике. В оригинальном батнике по регистрации было прописано:

@ECHO OFF

REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo ---------------------------------------------------
regasm.exe C:\cm\dll\SyncService\syncservice.dll /codebase
ngen.exe C:\cm\dll\SyncService\syncservice.dll
echo ---------------------------------------------------
echo Done.
20 Serginio1
 
25.12.15
20:43
Framework64
21 Serginio1
 
25.12.15
20:46
Тебе нужно для регистрации и генерации взять regasm и ngen из папки SystemRoot%\Microsoft.NET\Framework64\v2.0.50727

Но это при условии, что сборка скомпилирована под AnyCPU
То есть для 32 и 64 разрядных ОС
22 Tro2001
 
25.12.15
20:50
(21) К сожалению под что скомпилировано - уже даже спросить не у кого (((...
т.е. я беру с папки SystemRoot%\Microsoft.NET\Framework64\v2.0.50727  regasm и ngen и, не меняя физического местоположения этой моей длл просто ее регистрирую ?
23 Tro2001
 
25.12.15
20:51
а еще в батнике нужно
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727

заменить на:
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727

?
24 Serginio1
 
25.12.15
20:53
да
25 Serginio1
 
25.12.15
20:54
Запусти из Cmd чтобы видеть ошибки
26 Serginio1
 
25.12.15
20:55
И с правами админа
27 Tro2001
 
25.12.15
21:18
Написало пачку предупреждений:

Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.8007
Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.

RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can ca
use your assembly to interfere with other applications that may be installed on
the same computer. The /codebase switch is intended to be used only with signed
assemblies. Please give your assembly a strong name and re-register it.
Types registered successfully
Не найден указанный модуль. (Exception from HRESULT: 0x8007007E)
---------------------------------------------------
Done.

НО РАБОТАЕТ !!!!!!!!!!!!
СПАСИБО ОГРОМНОЕ. !!!!!!

Где тут +100500 нажимать ? ))
28 Serginio1
 
25.12.15
21:27
(27) На здоровье!
29 mehfk
 
25.12.15
21:37
(0) Это санкции.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой