2010-12-15 47 views
0

我有1個C#控制檯應用程序項目,它具有Program.cs(包含主要方法),主要方法簡單地調用一個Web服務方法,並在控制檯上顯示字符串。在控制檯應用程序生產WCF服務參考問題

通過右鍵單擊並添加服務引用它,服務引用添加到項目中。

  • 當控制檯應用程序在Visual Studio的調試模式下執行時,它按預期工作。

  • 當控制檯應用程序從/ bin/debug中找到的.exe執行時,它按預期工作。

迄今爲止這麼好。

問題:

當項目複製到系統(可以稱之爲生產環境),其中該.exe文件將實際執行時,它失敗在哪裏我創建了服務代理的確切行目的。 Program.cs中的行是:

ProjectName.ServiceReference.ServiceClient service = new ProjectName.ServiceReference.ServiceClient();

我知道它在這裏失敗,因爲我有Console.Writeline(「some line」);在上面一行之前和之後。我可以看到代理行之前的Console.Writeline,之後它崩潰了......

我認爲這是因爲引用該服務的引用路徑,是否有任何事情可以改變路徑,或確認這是路徑問題,因爲懷疑......?

任何想法最新怎麼回事..?

+0

它沒有「失敗」。有一個例外。拋出了什麼異常?如果有疑問,請使用try/catch塊圍繞您的代碼,並對異常執行Console.WriteLine(ex.ToString())。 – 2010-12-15 19:49:09

+0

k,只是分鐘讓我這樣做... – user402186 2010-12-15 19:56:19

+0

k,這裏我們去,例外有以下消息 – user402186 2010-12-15 20:06:48

回答

0

檢查此鏈接:http://blog.davidsandor.com/post/Workaround-The-configuration-for-the-servicee280a6Unrecognized-element-e28098extendedProtectionPolicye28099.aspx

的服務引用的配置不能因 以下問題更新:無法識別的元素 「extendedProtectionPolicy」。 (App.config/Web.config)

似乎沒有一個真正清楚的原因,爲什麼發生這種情況 但它似乎與Windows 7有關。我不確定是否運行的.NET框架 與Win7有一些不同的設置或 模板爲WCF配置策略文件,但它似乎是 罪魁禍首。也許machine.config文件在Win 7和 上不同,WCF配置工具使用machine.config作爲某種 策略模板。

該修復很煩人(因爲每當您在Windows 7上構建您的解決方案,然後在Vista上重建時,您都必須重做此操作)。

刪除行:

<extendedProtectionPolicy policyEnforcement="Never" />

從客戶端上,並在WCF 服務器的Web.config文件中兩個你的App/Web.config文件。

+0

我的上帝...它浪費了我的2天... – user402186 2010-12-15 20:34:46

+0

非常感謝..... MMMWMWWWAAAAAHHHHHH – user402186 2010-12-15 20:36:41

+0

鏈接無法正常工作 – user2323308 2013-12-20 11:53:28