WCF:调用超时
今天調(diào)用查詢方法的時(shí)候,出了一個(gè)本地socket超時(shí)的錯(cuò)誤,而這個(gè)查詢方法昨天還是正常調(diào)用的。
調(diào)試了一會(huì),發(fā)現(xiàn)只要有返回值,就會(huì)報(bào)錯(cuò),如果無返回值就是正常的。估計(jì)是序列化的時(shí)候有問題,以為是沒給類加上[Serializable],后來加了也不行。
經(jīng)過逐步排查,發(fā)現(xiàn)是返回的類加了一個(gè)枚舉類型的屬性,但沒有給這個(gè)枚舉屬性賦值導(dǎo)致的。
錯(cuò)誤內(nèi)容
The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.9960000'.
內(nèi)部錯(cuò)誤1:
{"The read operation failed, see inner exception."}
內(nèi)部錯(cuò)誤2:
{"遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。"}
?
錯(cuò)誤原因
返回的類中有一個(gè)枚舉屬性,但沒賦值。
?
解決
給這個(gè)屬性賦一個(gè)默認(rèn)值就可以了。
?
今天居然又出這個(gè)錯(cuò)誤了。結(jié)果問題發(fā)生的原因卻是因?yàn)槲遗渲昧薙ecurity:
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
把Security這兩項(xiàng)刪除就沒錯(cuò)了。
WCF的錯(cuò)誤信息真奇怪。
轉(zhuǎn)載于:https://www.cnblogs.com/ego/archive/2012/03/19/2405705.html
總結(jié)
- 上一篇: 设计师的悲衰生活
- 下一篇: Nand Flash VS Nor Fl