解決WCF程序種種問題
今天在公司使用Vista下開發了WCF的Tcp程序,公開了HTTP接口,看WCF程序說明,應該沒有什么大問題,但是卻說服務進程沒有權限打開端口,真讓人頭疼,具體錯誤信息類似:
訪問被拒絕
msdn上提了三個步驟來解決這個問題:
1.如果計算機不是域成員,請將身份驗證模式和保護級別設置為 None 以禁用傳輸安全性,如下面的示例配置所示:確保通過設置終結點的 bindingConfiguration 屬性將終結點與綁定關聯。
確保在運行WCF程序示例前更改 PoisonMessageServer、服務器和客戶端上的配置。
2.注意: 將 security mode 設置為 None 等效于將 MsmqAuthenticationMode、MsmqProtectionLevel 和 Message 安全設置為 None。#t#
3.若要使元數據交換正常工作,WCF程序應當向 http 綁定注冊一個 URL。這要求服務在具有提升權限的命令窗口中運行。否則,您將接收到異常最后我以管理員權限來打開這個程序才能注冊URL,看來Vista的安全性確實比較高,不知道該怎么寫這個程序才能在vista下順利運行另外,我測試了一下tcp協議和basicHttp協議的性能差異:
兩者居然差別不是特別大:服務和客戶端程序都在一個服務器上(vista)以tcp方式調用500次,大概使用600毫秒以http方式調用500次,大概使用800毫秒整體來說http比tcp慢30%不到,還是能夠接受當然這是在本機,如果WCF程序是在公網上跑,就沒有這么樂觀了。居然沒筆調用才1毫秒多一點。神速啊!