疑難排解例外狀況:System.InvalidOperationException
更新:2007 年 11 月
當叫用 (Invoke) 方法失敗,而且原因不是無效的引數時,就會擲回 InvalidOperationException 例外狀況 (Exception)。無法叫用基礎 Win32 方法時,.NET Framework 方法就可能會擲回這個例外狀況。
相關秘訣
如果您使用了 GetHdc 方法之後又使用 Graphics 物件,請呼叫 ReleaseHdc 方法。
這會釋放 Graphics 物件對 GetHdc 方法進行之前一個呼叫所取得的內容控制碼。TableAdapters 需要有效的 UPDATE、INSERT 和 DELETE 命令,以便成功執行儲存作業。
TableAdapters 會依據輸入精靈的原始 SELETE 陳述式,產生 INSERT、UPDATE 和 DELETE 陳述式。在某些情況中,SELECT 陳述式提供的資訊並不足以讓配接器 (Adapter) 產生命令,以建立成功儲存所必要的 INSERT、UPDATE 和 DELETE 命令。當資料庫資料表沒有主索引鍵資料行,或 SELECT 命令使用 JOINS 時,常會發生這個狀況。如需詳細資訊,請參閱 HOW TO:編輯 TableAdapter。傳遞有效端點名稱給服務用戶端建構函式 (Constructor)。
當 Windows Communication Foundation (WCF) 用戶端只有一個端點時,在使用上並不會有任何疑慮,也不需要列出端點做為引數。然而,當同一個合約型別有兩個或以上的端點時,就必須指定用戶端要使用哪一個端點。例如,將用戶端定義為不含引數的 ServiceReference.ServiceSoapClient() 執行個體 (Instance) 時,會引發這個例外狀況。只要指定特定端點,就可以解決問題:Dim client As New ServiceReference.ServiceSoapClient("ServiceSoap")
同樣地,如果提供找不到的端點名稱,也會引發這個例外狀況。在此情況下,則必須識別並提供有效的端點名稱。
如需端點的詳細資訊,請參閱 Windows Communication Foundation 端點。
備註
當您在 Visual Studio 偵錯工具中執行程式碼時,如果從某個執行緒存取 UI 項目,但這個執行緒不是建立該 UI 項目的執行緒,就會擲回 InvalidOperationException。偵錯工具藉此警告您的程式設計做法很危險。UI 項目不是安全執行緒,只能經由建立該 UI 項目的執行緒進行存取。如需詳細資訊,請參閱 Visual Basic 中的多執行緒。
如果是因為引數無效而造成方法引動過程失敗,則應該會擲回 ArgumentException,或是它的其中一個衍生類別 (Derived Class) ArgumentNullException 或 ArgumentOutOfRangeException。
針對使用 Visual Studio 和 SQL Server Compact 3.5 進行的 64 位元程式開發,[進階編譯器設定] 中的 [目標 CPU] 選項必須明確設定為 [x86]。當 [目標 CPU] 設定為預設值 [任何 CPU] 時,您可能會收到「無法載入 sqlceme35.dll」這個訊息。因此請務必設定專案屬性中,[進階編譯器設定] 的 [目標 CPU] 選項。