我寫好WebMethod后,用VS2005自帶的單元測試向導生成單元測試代碼,并進行必要的初始化后,剛開始幾次測試過程中一切正常。
但反復測試了幾次后,卻冒出一個很奇怪的問題:單元測試通過了,但同時也冒出一個錯誤框,提示:檢測到 DisconnectedContext
Message: 上下文“0x1989a8”已斷開連接。正在從當前上下文(上下文 0x198838)釋放接口。這可能會導致損壞或數據丟失。要避免此問題,請確保在應用程序全部完成 RuntimeCallableWrapper (表示其內部的 COM 組件)之前,所有上下文/單元都保持活動狀態。
于是我Google了一下,搜到了這篇文章:http://msdn2.microsoft.com/zh-cn/library/2c1czate.aspx ,可惜我又看不懂。無奈之下,把文章中最后的那一段配置拷貝到我自己項目的配置文件中,加進去之后就我就更慘了,這次單元測試都通不過了,只好再去掉mdaConfig配置。
我開始懷疑是不是我的Web服務器端代碼是不是有問題,于是又在WebService中寫了個最簡單的HelloWorld()方法,對HelloWorld()進行單元測試雖然也通過了,但又冒出了另一個錯誤:無法從一個或多個進程分離:
[3308]:被調用對象已與客戶端斷開連接。
要中止這個進程嗎? 是(Y)/否(N)
這下我就更暈了,連最簡單的HelloWorld都出問題了。萬般無奈之下,只好嘗試關閉項目再重新打開,但打開項目后問題依然存在。最后當我又嘗試注銷操作系統,再打開項目后,一切才又恢復正常。
不過現在依然不明白為什么會出現上面的錯誤,是我的程序有問題,Visual Stuido 2005有問題(以前在用VS.Net2005時沒有遇到過這種問題),還是Windows有問題?
浙公網安備 33010602011771號