2009-09-24 32 views
1

我用c#做了一個COM對象,讓VS爲我註冊。我可以在註冊表中看到它,如果我製作了一個測試應用程序,我可以添加一個對它的引用,並且按照預期的方式使用所有可用和可用的方法。MSMQ不調用COM

現在,如果我嘗試在MSMQ規則中使用它,則不會發生任何事情。它不會被調用。這是因爲它是一個.NET程序集?是因爲我沒有VS Pro嗎?你有什麼想法嗎?

+0

凹凸。只是想知道如果有人有一個想法。 更新。在Wondows avent查看器中,它聲明無法找到COM組件。爲什麼它找不到它。一切看起來不錯。 – 2009-09-28 12:18:55

+0

更新。我現在有空,現在仍然不能正常工作。但是,第一次構建項目時,我得到了訪問被拒絕的錯誤。第二次它修好了。但我懷疑它還沒有正確註冊。 – 2009-10-06 12:07:40

+0

由於VS嘗試調用'regasm',但沒有管理員權限就無法運行,所以出現構建錯誤 – Sebastian 2013-04-03 17:58:58

回答

1

你沒有任何機會在映射的網絡驅動器上註冊你的組件嗎? MSMQ在不同的WinStation上運行到交互式WinStation。在交互式WinStation中映射的網絡驅動器在其他WinStations中不可見,這可能會導致您描述的症狀(未找到組件)。

+0

我起初做過。但後來我在本地移動了我的項目,用VS註冊了它,並完全重新創建了觸發器和規則。我仍然收到相同的事件消息。 我已經採取了使用Windows服務來偵聽消息而不是在組件上觸發消息。請參閱http://stackoverflow.com/questions/1521841/receiving-msmq-messages-with-windows-service。 – 2009-10-16 11:59:25

0

您需要檢查系統事件日誌以查找錯誤消息(eventvwr.exe)。如果您的組件已註冊並且MSMQ已正確配置爲激活組件,但它失敗了,最有可能的問題是使用權限。事件日誌應該包含該步驟的細節。

+0

該事件只是聲明無法找到該組件。我研究過這個,其他人都同意這是一個非常模糊的信息。 – 2009-10-16 11:53:15

0

更新!

我再次搞砸了。當收到消息時,我創建了一個簡單的EXE。它接受2個字符串參數。

我忘了第一次傳遞參數,我得到了同樣的錯誤,因爲我以前正在描述。關於未找到COM對象。我通過了參數,它工作正常。

我以爲我傳遞參數給我的COM對象很好,但也許不是。也許我做錯了什麼。我將創建一個沒有參數的COM,看看我是否可以強制COM調用。

如果有人作爲創建對象來接受參數的示例,請讓我知道。