Mam opartą na CLR procedurę przechowywaną, która wykorzystywała MsmqIntegrationBinding
do wysyłania wiadomości do zdalnych MSMQ. Wszystko działało dobrze w SQL Server 2005, ale teraz ma miejsce aktualizacja w latach 2005-2012. Próbowałem zarejestrować CLR (SP) w SQL Server 2012, ale podczas rejestracji System.ServiceModell.DLL
pojawił się następujący błąd.Rejestrowanie funkcji CLR (opartej na WCF) w SQL Server 2012
Msg 6544, Level 16, State 1, Linia 1
TWORZENIE montażowe dla montażu 'System.ServiceModel' nie powiodło się, ponieważ zespół 'microsoft.visualbasic.activities.compiler' jest uszkodzony lub nie jest to czysta NET . Nie można zweryfikować PE Header/native stub.
Szukałem rezolucji i wygląda na to, że niewiele osób ma ten sam problem i na razie nie ma na to rozwiązania.
Głównym powodem używania MSMQIntegrationBinding
jest chęć upewnienia się, że każda wiadomość jest dostarczana tylko raz. Jak widać, byłem bardzo zainteresowany właściwością ExactlyOnce
, której nie ma w zwykłej klasie system.messaging. Przetwarzamy tysiąc wiadomości, a kolejność wysyłania wiadomości jest bardzo ważna, im dalej każda wiadomość jest opatrzona identyfikatorem i jeśli wysyłana jest jakaś wiadomość, która ma identyfikator mniejszy niż poprzednio wysłana wiadomość, system klienta zatrzymuje się (duży problem).
Mam również przepisane CLR przechowywane proc przy użyciu system.messaging. Potrzebuję tylko sugestii, czy może on wspomóc scenariusz, o którym wspomniałem powyżej.
Zamiast tego wywołaj usługę WCF, która będzie pełnić funkcję proxy wywołania kolejki. – abatishchev
Co to jest bitness SQL Server i zespołu? – abatishchev