SQL Server 2008 и программирование COM-сервера - PullRequest
0 голосов
/ 01 сентября 2010

Нам необходим доступ к пользовательскому COM-серверу ATL из SQL Server 2008. В идеале мы хотим, чтобы COM-сервер работал на отдельной машине, поскольку он является частью более крупного программного приложения. Я знаю о хранимых процедурах автоматизации COM / OLE, которые предоставляет SQL (sp_OAXXXX), но кажется, что они не принимают имя компьютера / сервера для удаленного вызова.

Можно ли добиться этого с помощью хранимых процедур CLR на основе C #? Есть ли другие подходы? У нас также есть Java-оболочка для COM-сервера, поэтому вариант с удаленными пакетными файлами? Я ожидаю услышать от любого, кто, возможно, имел дело с подобной проблемой.

Спасибо, Sam

Ответы [ 2 ]

0 голосов
/ 09 сентября 2010

Вот один из подходов: вы можете создать веб-сервис SOAP, используя либо WCF, либо asmx, чтобы обернуть интерфейс (ы) COM-сервера.Создайте сборку CLR и добавьте веб-ссылку для веб-службы в сборку.Затем вы можете вызывать методы на COM-сервере как вызовы веб-службы.Для этого вам нужно будет собрать и запустить сборку SQLCLR с разрешениями EXTERNAL_ACCESS.Преимущество этого подхода в том, что он довольно прост, и будет легко настроить тестовый фрейм для веб-службы независимо.

0 голосов
/ 01 сентября 2010

На дорожке sp_OACreate вы можете связать свой COM-сервер с COM + на удаленном сервере, а затем экспортировать proxy MSI, который затем можно установить на свой SQL Server (также в COM +, и настроитьинформация об удаленном сервере).Таким образом, вы можете ослабить ужас DCOM.

Но, как и на других постерах, вызов удаленных COM-серверов из SQL был бы последним средством.

...