2011-04-15 84 views
1

我有一個使用netMsmqBinding和客戶端使用它的WCF服務。我使用客戶端向服務發送消息,並將其發送到消息隊列,但服務從未激活。我試過設置斷點,構造函數中的異常,設置通配符和其他一些事情,但服務從不做任何事情。消息位於消息隊列中。消息沒有得到服務

即使禁用IIS,郵件也會進入隊列。

我錯過了什麼?

+0

您是在IIS中運行WCF服務,還是託管它的獨立Windows服務? – 2011-04-15 20:40:01

+0

IIS。正如我所說,即使當我禁用IIS的消息仍然進入隊列。 – 2011-04-15 20:41:05

回答

1

是一個應用程序或根站點節點下託管你的服務?如果沒有在應用程序中,然後創建一個,移動服務,並在命令提示符下使用這些命令(管理模式)

appcmd set site "servicesite" -+bindings.[protocol='net.msmq',bindingInformation='localhost'] 
appcmd set app "servicesite/svcapp" /enabledProtocols:net.msmq 

其中servicesite和svcapp分別是你的IIS站點節點和應用節點的名稱。

通過網絡瀏覽器訪問您的服務,看看你得到什麼。

2

我不相信MSMQ綁定會自動在IIS中託管的WCF服務中工作。我相信你必須在IIS中使用Windows激活服務(WAS),或者其他一些機制才能使其運行。這篇文章可能會給你一些信息入手:

http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx

+1

我已經閱讀了這些例子中的所有3篇文章。那些文章使用IIS,而不是自己託管的服務。 「最後一步是將IIS 7配置爲使用WAS來收聽消息隊列並在新消息到達時激活您的服務」 – 2011-04-15 20:49:10

+0

如果您已經嘗試了一些東西,則可能需要更新您的問題以指出您的問題嘗試和爲什麼。這些類型的東西高度依賴於細節,所以如果你只是提供一些信息,你不能指望詳細的演練。 – 2011-04-15 20:56:40