2012-02-21 196 views
1

任何幫助/反饋將不勝感激。我想在C#中開發一個Windows服務,以便它通過命名管道與用C#編寫的Web服務進行通信。這種進程間的方法可能嗎?使用命名管道的原因是性能。Windows服務和網絡服務之間的進程間通信

+0

當你說「使用C#編寫的Web服務」時,它是否託管在IIS中,如果沒有,如何?如果我正確地理解了你,它是「Web服務」的事實並不相關 - 重要的是什麼類型的進程在什麼安全上下文中運行,託管你的Windows服務需要通過命名管道進行通信的代碼。 – 2012-02-23 09:35:04

+0

@ChrisDickson是的,web服務託管在IIS中。實際上,Windows服務和Web服務託管在同一臺服務器(Windows服務器)上。此外,沒有任何服務具有安全上下文。所以我的問題是命名管道接近可以在這種情況下實現? – 2012-02-23 16:11:38

回答

1

我會親自創建一個WCF服務並使用netNamedPipe綁定。

我提供的鏈接包含一個工作示例。

您需要注意的是,由於Windows 2008 Server強化(包括Windows 7),服務在不同的會話Id(會話0)中運行,並且無法訪問正在用戶中運行的WCF服務模式。

+0

thx爲消化,但是,Windows服務必須也通過TCP連接到非Windows環境,所以如果我使用WCF我將無法使用TCP協議 – 2012-02-21 18:05:07

+0

當然,您可以使用TCP。您可以將其託管在TCP的其他端口上。 – Aliostad 2012-02-23 09:23:10

+0

如果我從msdn規範正確理解,如果我使用WCF,我只能使用netNamedPipes和netTcp作爲通信協議。它是否正確?如果是這樣,我想使用常規的TCP協議而不是netTcp,因爲這個只是在Windows機器之間使用。 – 2012-02-23 16:02:48

相關問題