我有使用WCF編寫的文件傳輸服務。它接收客戶端發送的文件。 客戶端inturn使用FileStream + MessageContract跨文件發送。我曾嘗試使用以下屬性WCF + Singleton +文件傳輸+多線程
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
我嘗試在客戶端本身使用多線程做成單的WCF文件傳輸服務。 每個線程創建一個channelfactory + proxy.CreateChannel的實例,並通過一個不同的文件發送到服務。我在服務端沒有任何鎖,它只允許一次傳送一個文件,在客戶端也是如此。該代碼是通過代碼沒有狀態持久性的一種。
我面臨的問題是,因爲我沒有看到多個線程試圖發送多個文件。每次我嘗試使用多個線程傳輸多個文件時,該服務類型不會在同一實例中接受多個文件。這會導致文件按順序而不是並行傳輸。我覺得從客戶端發送文件,但在服務端,它的種類只是被阻止了。
我嘗試使用ServiceThrottling屬性,但仍然沒有發現任何區別。 我在做什麼錯或是這種方法無效?
一個客戶端只能通過一個通道發送一個文件?許多線程可以不發送很多文件到同一個服務?有人可以幫幫我嗎。
感謝 桑迪普
我讓它工作,我有一個鎖對象正好在服務的入口點。但我面臨更多問題。只有兩個文件在一個點上傳輸。是否還有其他需要添加的配置? – Sandepku