2009-01-12 60 views
0

我使用Visual Studio 2008和我試圖打開我的形式之一,當出現以下錯誤信息:Windows窗體設計時錯誤

找不到與 名「WSHttpBinding_ICommon」和 終結點​​元素在 ServiceModel客戶端配置 部分的合同'CommonWCF.ICommon'。這可能是因爲沒有爲您的 應用程序找到 配置文件,或者因爲在客戶端元素中找不到與此名稱匹配的端點 元素可能是 。

和以下堆棧跟蹤

在 System.ComponentModel.ReflectPropertyDescriptor.SetValue在 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager (對象 分量,對象的值)經理,CodeAssignStatement 陳述, CodePropertyReferenceExpression propertyReferenceEx,布爾 reportError)在 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager 經理,CodeAssignStatement 語句)在 System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager 經理,CodeStatement語句)

然而我確實有我的App.Config中提出的元素,並且一切都在運行時運行。但是,每當我嘗試打開表單時,我都會收到此消息,這並不算太壞,因爲我可以忽略它,但是當我執行了許多控件(那些在右側和/或底部具有錨點的控件)時,我的網格會自動重新獲得他們之前刪除的數據源(列)中的所有列。

任何建議/解決方法?這是一個Visual Studio 2008的錯誤?

回答

1

你在哪裏使用端點?你真的需要它嗎?或者你只能在運行時調用它?您可以使用Component.DesignMode屬性來確定您是否處於設計模式,這樣可以防止對正在進行的端點的調用。要充分調試您的設計時間體驗,請按照this文章中的說明進行操作。

+0

太棒了。這有助於找到導致問題的代碼。似乎移動控件和添加網格列是一個單獨的問題? – ptutt 2009-01-13 01:34:00

0

我曾嘗試在構造函數初始化期間嘗試進行數據庫調用時發生過類似的錯誤。

不幸的是,Component.DesignMode直到構造函數完成後纔會被設置!

1

我用

 if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) 
     { 
      return; 
     } 

在兩個構造函數檢查設計模式,如果它確實比任何其他的InitializeComponent()和調用方法(如果有)。

1

還有另一種方法,以在調試設計時devenv的處理(視覺工作室),如指出 here

在設計模式打開窗體時這有助於拋出異常(即示出了錯誤到用戶)。

以下是這篇文章的摘要:

  1. 打開一個新的Visual Studio實例。
  2. 打開任何源文件。這是必需的,這樣Visual Studio可以讓你連接到一個進程。
  3. 將新的Visual Studio實例附加到第一個。 Visual Studio進程稱爲devenv.exe。您只需附加到託管代碼。
  4. 設置Visual Studio以打破公共語言運行時異常 - 投擲和用戶處理。 關閉有問題的表單,然後重新打開它。

這應該會導致在Visual Studio的第二個實例中的代碼中捕獲異常!

+0

這應該從屋頂呼喊!在這種情況下,它是迄今爲止找到錯誤的準確位置的最快最直接的途徑。 – 2015-02-17 16:33:18