我有一個基於CLR的存儲過程,它使用MsmqIntegrationBinding
將消息發佈到遠程MSMQ。在SQL Server 2005中一切正常,但現在有從2005年到2012年的升級假設發生。我試圖在SQL Server 2012中註冊CLR(SP),但在註冊System.ServiceModell.DLL
時出現了以下錯誤。在SQL Server 2012中註冊CLR函數(基於WCF)
消息6544,級別16,狀態1,行
CREATE ASSEMBLY裝配 'System.ServiceModel' 失敗,因爲程序集 'microsoft.visualbasic.activities.compiler' 是格式不正確或不是純粹的.NET程序集。 無法驗證的PE標頭/本地存根。
我搜索的分辨率,看來,很少有其他人有同樣的問題,截至目前沒有辦法解決它。
使用MSMQIntegrationBinding
的主要原因是我們希望確保每條消息只傳遞一次。正如你所看到的,我對ExactlyOnce
屬性非常感興趣,它在正常的system.messaging類中不存在。我們處理了數以千計的消息,並且消息的排序非常重要,每個消息都會加上一個id,並且發送的消息的ID小於以前發送客戶端系統停止的消息(大問題)。
我也使用system.messaging重寫了CLR存儲過程。我只需要建議它是否可以支持我上面提到的場景。
改爲調用WCF服務,它將代理調用隊列。 – abatishchev 2013-03-02 21:37:36
SQL Server和程序集的位數是多少? – abatishchev 2013-03-02 21:38:14