針對 Visual Studio 中的 Windows Communication Foundation (WCF) 或 WCF 資料服務 參考進行疑難解答
適用於: Visual Studio
本文列出在 Visual Studio 中使用 Windows Communication Foundation (WCF) 或 WCF 資料服務 參考時可能發生的常見問題解決方案。
如果您想要更新或移除服務參考,請參閱 新增、更新或移除 WCF 資料服務參考。
未提供服務地址時發生錯誤
當您選取沒有位址的 [Go ] 按鈕時,您可能會看到錯誤訊息,指出「請輸入服務的位址」。若要解決此問題,請識別服務的位址並輸入。
- 如果是解決方案中的服務,您可以使用 [ 探索 ] 按鈕來尋找並選取它,然後再試一次 [ 移至 ] 按鈕。
- 如果是裝載在因特網上某處的服務,請依照新增WCF服務參考中的指示加以新增。
從服務傳回數據時發生錯誤
當您從服務傳回 DataSet
或 DataTable
時,可能會收到「已超過傳入訊息的大小上限配額」例外狀況。 根據預設, MaxReceivedMessageSize
某些系結的 屬性會設定為相對較小的值,以限制拒絕服務攻擊的風險。 您可以增加此值以防止例外狀況。 如需詳細資訊,請參閱MaxReceivedMessageSize。
修正這個錯誤:
- 在 方案總管 中,按兩下 app.config 檔案加以開啟。
- 找出 屬性,
MaxReceivedMessageSize
並將其變更為較大的值。
在我的解決方案中找不到服務
當您在 [新增服務參考] 對話框中選取 [探索] 按鈕時,方案中的一或多個 WCF 服務連結庫專案不會出現在服務清單中。 如果服務連結庫已新增至解決方案,但尚未編譯,就可能發生此問題。
修正這個錯誤:
- 在 方案總管 中,以滑鼠右鍵按兩下 WCF 服務連結庫專案。
- 選取 [組建]。
透過遠端桌面存取服務時發生錯誤
當使用者透過遠端桌面連線存取 Web 裝載的 WCF 服務,且使用者沒有系統管理許可權時,會使用 NTLM 驗證。 如果使用者沒有系統管理許可權,使用者可能會收到下列錯誤訊息:「HTTP 要求未經授權且客戶端驗證配置為 『Anonymous』。 從伺服器收到的驗證標頭是 『NTLM』。
修正這個錯誤:
- 在網站專案中,開啟 [ 屬性] 頁面。
- 在 [ 開始選項] 索引標籤上,清除 [ NTLM 驗證] 複選框。
注意
您應該只針對僅包含 WCF 服務的網站關閉 NTLM 驗證。 WCF 服務的安全性是透過 web.config 檔案中的 組態 來管理。 這使得NTLM驗證不必要。
所產生類別設定的存取層級沒有任何作用
將 [設定服務參考] 對話框中所產生類別的 [存取層級] 選項設定為 [內部] 或 [Friend] 不一定會運作。 即使選項似乎在對話框中設定,產生的支持類別還是會以的 Public
存取層級產生。 這是特定類型的已知限制,例如使用 XmlSerializer串行化的類型。
偵錯服務程式代碼時發生錯誤
當您從用戶端程式代碼逐步執行 WCF 服務的程式代碼時,您可能會收到與遺漏符號相關的錯誤。 當解決方案所屬的服務已從解決方案移動或移除時,就可能發生此情況。
當您第一次將參考新增至屬於目前解決方案的 WCF 服務時,服務專案與服務客戶端項目之間會新增明確的建置相依性。 這可確保用戶端一律存取最新的服務二進位檔,這對於偵錯案例特別重要,例如從用戶端程式代碼逐步執行至服務程序代碼。
如果服務專案已從方案中移除,此明確建置相依性就會失效。 Visual Studio 無法再保證服務項目已視需要重建。
若要修正此錯誤,請手動重建服務專案:
- 在 [工具] 功能表上,選取 [選項]。
- 在 [選項] 對話方塊中,展開 [專案和解決方案],然後選取 [一般]。
- 確定 已選取 [顯示進階組建組態 ] 複選框,然後選取 [ 確定]。
- 載入 WCF 服務專案。
- 在 [組態管理員] 對話框中,將 [作用中方案組態] 設定為 [偵錯]。 如需詳細資訊,請參閱如何:建立和編輯組態。
- 在 方案總管 中,選取 WCF 服務專案。
- 在 [ 建置] 功能表上,選取 [重建 ] 以重建 WCF 服務專案。
WCF 資料服務 不會顯示在瀏覽器中
當它嘗試在 WCF 數據服務中檢視數據的 XML 表示法時,Internet Explorer 可能會將數據誤譯為 RSS 摘要。 請確定已停用顯示 RSS 摘要的選項。
若要修正此錯誤,請停用 RSS 摘要:
- 在 Internet Explorer 的 [ 工具] 選單上,選取 [因特網選項]。
- 在 [內容] 索引標籤的 [摘要] 區段中,選取 [設定]。
- 在 [ 摘要設定 ] 對話框中,清除 [ 開啟摘要閱讀檢視 ] 複選框,然後選取 [ 確定]。
- 選取 [確定] 以關閉 [網際網路選項] 對話方塊。