powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Clr-хранимка тащит вагон зависимостей.
13 сообщений из 13, страница 1 из 1
Clr-хранимка тащит вагон зависимостей.
    #39322023
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал библиотеку, которая делает soap-запрос и возвращает данные в mssql в виде таблицы. Сначала wsdl был кривой, запрос приходилось делать через вебреквест, отправляя постом xml-текст, ответ дербанить через XmlDocument, но все работало. Потом wsdl починили, библиотека сократилась до нескольких строк, но create assembly работать перестало и начало выдавать ошибку Assembly 'SOAP1C' references assembly system.runtime.serialization и т.д.

Эксперимента ради скопировал system.runtime.serialization.dll к SOAP1C.dll, но serialization потащила свои собственные зависимости. Скопировал SOAP1C в папку ко фреймворку, все в итоге обломилось на библиотеке, заголовок которой mssql не смог разобрать.

Однако здесь http://www.t-sql.ru/post/SMSCLR.aspx автор тоже делает soap-клиента к mssql (только у него web reference, а у меня service reference), и у него проблем нет. Что же я делаю не правильно?
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39322025
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полный текст ошибки

авторAssembly 'SOAP1C' references assembly 'system.runtime.serialization, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.', which is not present in the current database. SQL Server attempted to locate and automatically load the referenced assembly from the same location where referring assembly came from, but that operation has failed (reason: 2(Не удается найти указанный файл.)). Please load the referenced assembly into the current database and retry your request.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39322045
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЧто же я делаю не правильно?
всякую каку на сервер тащишь

ЗЫ это моё личное мнение - нехер на сервер всякие java и clr тащить
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39323929
it17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Для CLR по SOAP нужно 2 библиотеки.
Основная деплоится автоматически, serialization - надо подтягивать вручную.
Но не в папку к фреймворку, а к самой сборке
Под рукой нет сервера с CLR, но по памяти примерно так:
Стать на каталог Assemblies - добавить библиотеку, выбрать serialization из папки с релизом
С свойствах проекта должна стоять галочка "Генерировать serialization "
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324054
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Генерировал, но она сама ссылается на runtime.serialization

авторСтать на каталог Assemblies - добавить библиотеку, выбрать serialization из папки с релизом
С свойствах проекта должна стоять галочка "Генерировать serialization "
это непонятно. генерировал serialization как указано в ссылке, да и в принципе не ясно, зачем она нужна, на нее же даже ссылок нет.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324216
VAlexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariyавтор тоже делает soap-клиента к mssql (только у него web reference, а у меня service reference), и у него проблем нет. Что же я делаю не правильно?
Service reference в CLR-сборках для SQL Server не надо использовать.
Смотрим сюда: https://msdn.microsoft.com/en-us/library/ms403279.aspx. Это список системных сборок, которые загружаются автоматически. Ищем там System.Runtime.Serialization.dll... и не находим.
Поэтому если мы хотим использовать эту сборку, то её (и все зависимые сборки) тоже необходимо опубликовать в БД с помощью CREATE ASSEMBLY..., но при установке любого обновления windows update, которые меняют сборки .net есть шанс, что все сломается и придется обновлять эти системные сборки в БД.
Так что используйте Web Reference и будет все хорошо.

Antonariyэто непонятно. генерировал serialization как указано в ссылке, да и в принципе не ясно, зачем она нужна, на нее же даже ссылок нет.
Сборка XmlSerializers нужна, так как для сериализации и десериализации Web Reference использует класс XmlSerializer, который налету генерирует временные сборки. Что в процессе SQL Server не работает. Поэтому нужны предварительно скомпилированные классы для сериализации/десериализации.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324234
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyкоторая делает soap-запрос и возвращает данные в mssql в виде таблицы.
Код: c#
1.
MSSQL => sp_OACreate => COM Expose => .Net


Если организовать по такой схеме, то можно использовать полноценный .Net Framework в процессе MSSQL. Такое работает с MSSQL2000 + .Net2. На других версиях не проверял.

зы: Как советовали выше, лучше бросить заниматься мутотой и перейти на 3-х звенку.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324257
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexeyAntonariyавтор тоже делает soap-клиента к mssql (только у него web reference, а у меня service reference), и у него проблем нет. Что же я делаю не правильно?
Service reference в CLR-сборках для SQL Server не надо использовать.
Смотрим сюда: https://msdn.microsoft.com/en-us/library/ms403279.aspx. Это список системных сборок, которые загружаются автоматически. Ищем там System.Runtime.Serialization.dll... и не находим.
Поэтому если мы хотим использовать эту сборку, то её (и все зависимые сборки) тоже необходимо опубликовать в БД с помощью CREATE ASSEMBLY..., но при установке любого обновления windows update, которые меняют сборки .net есть шанс, что все сломается и придется обновлять эти системные сборки в БД.
Так что используйте Web Reference и будет все хорошо.Понял. Тут проблема лишь в том, что сервис, к которому я обращаюсь, не воспринимает запросы, сформированные через Web Reference, ошибку выдает.

VAlexeyAntonariyэто непонятно. генерировал serialization как указано в ссылке, да и в принципе не ясно, зачем она нужна, на нее же даже ссылок нет.
Сборка XmlSerializers нужна, так как для сериализации и десериализации Web Reference использует класс XmlSerializer, который налету генерирует временные сборки. Что в процессе SQL Server не работает. Поэтому нужны предварительно скомпилированные классы для сериализации/десериализации.А как ее использовать в проекте? Скомпилировать и подключить вместо XmlSerializer?
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324338
VAlexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyА как ее использовать в проекте? Скомпилировать и подключить вместо XmlSerializer?
Нет. Если используется конструктор XmlSerializer с 1 параметром, то сборка XmlSerializers загружается автоматически. Reference на нее не требуется.
В случае CLR сборок, сборка XmlSerializers должна быть опубликована так же как и основная сборка (CREATE ASSEBLY имясборки.XmlSerializers FROM '<путь к файлy>') после публикации основной сборки.

AntonariyПонял. Тут проблема лишь в том, что сервис, к которому я обращаюсь, не воспринимает запросы, сформированные через Web Reference, ошибку выдает.
Либо полностью отказаться вызывать из SQL, либо использовать промежуточный веб-сервис, который будет дергать в нужном формате.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324354
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexeyЛибо полностью отказаться вызывать из SQL, либо использовать промежуточный веб-сервис, который будет дергать в нужном формате.Либо использовать простой веб реквест, как я и делаю.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324460
it17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Примерно так как тут написано

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE ASSEMBLY CLRProcedures FROM 'C:\demos\CSTruter.com\CLRSQL\bin\Release\SourceAssembly.dll' 
WITH PERMISSION_SET = UNSAFE
GO
CREATE ASSEMBLY CLRSerializer FROM 'C:\demos\CSTruter.com\CLRSQL\bin\Release\SourceAssembly.XmlSerializers.dll' 
WITH PERMISSION_SET = UNSAFE
GO
CREATE PROCEDURE Test
AS EXTERNAL NAME [CLRProcedures].[CSTruter.com.StoredProcedures].[Test]
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324727
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VAlexeyAntonariyА как ее использовать в проекте? Скомпилировать и подключить вместо XmlSerializer?
Нет. Если используется конструктор XmlSerializer с 1 параметромНе понял. С каким набором параметров не вызывай, он сам находится в System.Xml.Serialization, и негодная зависимость от нее тащится в любом случае.
...
Рейтинг: 0 / 0
Clr-хранимка тащит вагон зависимостей.
    #39324730
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, разобрался, негодная зависимость - system. runtime .serialization, а xml - годная.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Clr-хранимка тащит вагон зависимостей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]