今天在工作中遇到這樣一個問題,讓我頭疼了半天,最后頭疼不能讓人屈服,問題還是被我征服了.先展示一下錯誤,看看你們有木有遇到過:

造成這種結果的原因有這么幾個:
1. 服務地址不正確;
2. 服務沒有運行;
3.netTcpBinding和endpoint節點未設置,這是在存在app.config的情況下才有可能的;
一一排除吧,前兩個都沒有問題,然后就開始baidu,google"元數據包含無法解析的引用","讀取XML數據時,超出最大名稱表字符計數配額(16384)",這樣查沒有結果啊,網上的千篇一律,說改什么配置文件,問題是我現在都沒有加上引用呢,何來的配置文件.后來才想到下邊的那句話"MaxNameTableCharCount屬性,可增加配額",那就開始找這句話.這句話還是很有用,找了一會終於有答案了.
這篇文章 里稍微有了思路,大膽改掉了VS 2010 的配置文件.
在配置文件的最下方加入了幾行代碼
<system.serviceModel> <client> <endpoint name="net.tcp" binding="netTcpBinding" bindingConfiguration="bc" contract="IMetadataExchange" /> </client> <bindings> <netTcpBinding> <binding name="bc" maxReceivedMessageSize="2147483647"> <readerQuotas maxNameTableCharCount="2147483647" /> <security mode="None"/> </binding> </netTcpBinding> </bindings> </system.serviceModel>
最耀眼的那一行便是核心,這段代碼要框在<configuration></configuration> 內部,這樣就OK 了,重啟一下VS ,繼續從前的操作,添加服務引用成功.
之后就可以Happy的進行下邊的服務調用嘍!
方法比較局限,或許有更好的辦法,希望園友們不吝賜教.
