У меня есть хранимая процедура на основе CLR, которая использовала MsmqIntegrationBinding
для отправки сообщений удаленным MSMQ. Все отлично работало в SQL Server 2005, но теперь есть обновление с 2005 по 2012 год. Я попытался зарегистрировать CLR (SP) в SQL Server 2012, но при регистрации System.ServiceModell.DLL
возникла следующая ошибка.Зарегистрировать функцию CLR (на основе WCF) в SQL Server 2012
Msg 6544, уровень 16, состояние 1, строка 1
CREATE ASSEMBLY для сборки 'system.serviceModel' не удалось, потому что сборка 'microsoft.visualbasic.activities.compiler' имеет неверный формат или не является чисто .NET сборки , Неиспытаемый заголовок PE/родной заглушка.
Я искал разрешение, и похоже, что у немногих других людей есть одна и та же проблема, и на данный момент нет решения для этого.
Основная причина использования MSMQIntegrationBinding
- мы хотели удостовериться, что каждое сообщение доставляется только один раз. Как вы можете видеть, меня очень интересует свойство ExactlyOnce
, которого нет в обычном классе system.messaging. Мы обрабатываем тысячи сообщений и упорядочиваем сообщения, очень важно, чтобы каждое сообщение было отпечатано с идентификатором, и если отправлено какое-либо сообщение, которое имеет идентификатор, который меньше, чем ранее отправленное сообщение, клиентская система останавливается (большая проблема).
Я также переписал хранимую процедуру CLR с использованием system.messaging. Мне просто нужны предложения, поддерживает ли он сценарий, упомянутый выше.
Вместо этого вызовите службу WCF, которая проксирует вызов в очередь. – abatishchev
Какова битость SQL Server и сборки? – abatishchev