2010-09-01 2 views
0

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

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

Спасибо, Сэм

+2

Это действительно плохая идея. Сожалею. Почему вы не можете использовать COM-файлы в другом месте? – gbn

+0

Поскольку это приложение SSRS –

+0

Явная оболочка не будет частью этого решения. Я удалил тег java. Нет причин, по которым вам нужна Java для создания удаленных пакетных файлов, и ни одна из этих технологий не будет работать с Java лучше друг друга. –

ответ

0

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

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

+0

Архитектурно я соглашаюсь называть COM-сервер с SQL-сервера - это плохой ход. Но мои руки связаны. Мне любопытно услышать, что вы/другие имеете в виду, когда препятствуете использованию COM из SQL Server –

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^