2014-02-08 100 views
0

我有幾個WCF服務(.net 4.0)通過我的Web服務器上的IIS託管。這些服務由我的winforms客戶端應用程序(vb.net 4.0)使用。我的測試機器上一切正常(一個XP,一個Win7和一個Win8.1)。我已經將我的應用程序部署到了我的客戶端,並且實現了這個新功能,並且我的客戶已安裝它的前100臺計算機的一切都很順利。「找不到默認端點元素...」,僅在某些客戶端機器上

我今天有一個客戶發現這個錯誤。以下是完整的錯誤僅供參考:

找不到在ServiceModel客戶端配置部分中引用合同'NetworkTimeCheck.INetworkTimeCheck'的默認端點元素。這可能是因爲沒有找到適用於您的應用程序的配置文件,或者因爲在客戶端元素中找不到匹配此合同的端點元素。

我遠程登錄到他的機器,發現<appname>.exe.config文件已舊(來自過去的版本),並且msi安裝程序沒有用新文件覆蓋舊配置。我不確定爲什麼會發生在這臺特定的機器上(它在其他機器上的所有以前的安裝中已被覆蓋)。無論如何,我可以通過卸載並重新安裝應用程序來輕鬆解決該問題。我把它寫成一個怪胎,然後繼續前進。

我有第二個客戶端,有三個運行Win7的筆記本電腦,他得到了完全相同的錯誤(他的其他三臺機器,他沒有錯誤,一切正常!)。我遠程登錄到其中一臺有問題的計算機,發現<appname>.exe.config文件是最新的,並且確實包含<system.serviceModel>部分。我已卸載/重新安裝沒有成功。我也在Visual Studio中更新了我的服務參考,只是爲了咯咯笑,並在他的機器上安裝了一個新版本......仍然沒有快樂......

我確定我的應用程序能夠訪問這些問題機器上的<appname>.exe.config文件因爲我在<applicationSettings>部分設置了幫助名稱空間,並且應用程序在打開幫助文件時沒有問題。

所以,我的問題是,爲什麼我得到這個錯誤!?

PS我正在考慮在代碼中在運行時手動配置端點和綁定,但這是我的最後手段。我真的很想知道爲什麼這會讓我適合幾臺客戶機,而在其他地方工作的很好。

謝謝你的時間!

回答

0

問題已解決。

問題是因爲某種原因,Win7在「兼容模式」中安裝了舊版本的我的應用程序(舊版本),並且<appname>.exe.config文件的舊版本隱藏在一個位置,並且Win7繼續掛在該舊文件即使安裝了新版本也是如此。

我去了客戶端機器上的應用程序根目錄,點擊「兼容性文件」按鈕,並刪除了舊的<appname>.exe.config和walla!

參考更多信息:https://stackoverflow.com/a/8471259/2949093

相關問題