我知道這裏有100萬個帖子,但我不明白這個。 我有一個極值簡單的例子管道服務:Mysterious =>從管道讀取時發生錯誤:管道已結束。 (109,0x6d)
當我把它的人,一切都很好,但是當兩個客戶端同時調用它會拋出該異常。 服務器直接設置一個新線程並返回給客戶端。
public void RiskExport(long sraid, long revID, string JobID)
{
ThreadStarter starter = new ThreadStarter(new ThreadStartWithParameter(RunExportJob), new SRAInfo() { sraid = sraid, revID = revID, JobID = JobID });
Thread t = new Thread(new System.Threading.ThreadStart(starter.ThreadStartEntry));
t.IsBackground = true;
t.Start();
}
因此,它不能是一個超時的問題,因爲它從cleint到服務器和後面需要1秒的時間。尤其是當我在同步稱它爲環路從我的單元測試
string JobID = "";
for (int i = 0; i < 100; i++)
{
string baseAddress = "net.pipe://localhost/SRADocumentService";
ChannelFactory<ISRARiskExport> factory = new ChannelFactory<ISRARiskExport>(new NetNamedPipeBinding(NetNamedPipeSecurityMode.None), new EndpointAddress(baseAddress));
ISRARiskExport svc = factory.CreateChannel();
JobID = Guid.NewGuid().ToString();
svc.RiskExport(sraid, revID, JobID);
}
我都準備好激活WCF跟蹤。在這裏我可以看到每次調用拋出異常。詳細信息窗格根本沒有幫助我,因爲它向我顯示兩次異常=> 從管道讀取時發生錯誤:管道已結束。 (109,0x6d)。
隨着不同的堆棧跟蹤=>
我也看到在DebugView中的例外來長後撥回是在客戶端。 我的問題是:
爲什麼服務工作,因爲即使當它拋出這個異常
我怎樣才能擺脫例外的,因爲他們都得到日誌文件和我expectet我不會感冒。
THX邁克爾
沒有這個例子,沒有人可以幫助你。您可能想編輯帖子。 –
哈哈 - 我無法添加所有的內容。所以我做了一些步驟。 –