2011-10-26 135 views
1

好吧,讓我先狀態的一些事實:獲得空返回從方法調用

  1. 這是已經工作的Web服務。有幾個.svc端點都工作。現在雖然有一個不是,也就是說當我通過另一個項目使用服務時,我可以對它進行方法調用,但是我一直得到空值。
  2. 這個服務中的方法代碼不斷地發回空HAS NOT CHANGED
  3. 我確實搞亂了端點配置,指向它的幾個不同的服務器。我試過它指向的原始服務器。無論我可以更新服務,但是即使將其設置回舊的端點路徑,在測試對此服務的調用時,仍然會從單元測試中返回空值。單元測試運行在正在使用服務的項目中
  4. 我檢查了服務本身的app.config和web.config。據我所見,一切看起來都很好...但我又是新來的WCF

我知道這是相當普遍的,但我正在尋找一些指導,從哪裏開始尋找,突然之間變得空虛。這些方法後面的存儲過程沒有改變。這些方法調用再次在過去一週的某個時間點工作,但現在不是。

回答

1

這是非常普遍的,但幾件事情嘗試...

  1. 嘗試更新服務引用,以確保您有最新代理的版本對象
  2. 您是否嘗試過內部調試你的服務並查看預期返回值是否在客戶獲得之前從服務中返回?
  3. 你是否捕獲到服務中的所有異常,然後返回結果對象還是讓異常通過?如果你讓他們失敗,WCF頻道可能會出現故障。
  4. 嘗試使用提琴手,並看看你是否認爲應該被調用的端點是,如果響應對象確實爲空。
  5. 在您返回客戶端之前,使用老派技巧並將結果寫入服務器上的文件。這將幫助您瞭解它是否是服務器到客戶端的序列化問題。您甚至可能需要在服務接到電話時寫入文件,以確保您的客戶端正在連接。

你真正需要做的是從你的服務內部調試開始,逐步瀏覽代碼。確保SPROC正在返回您期望的內容,然後不會引入環境錯誤。

+0

做了#1萬次....我每次測試過程的時間。 – PositiveGuy

+0

#2我已經有實際服務解決方案中已經存在的單元測試,他們現在失敗了。此前他們並沒有失敗。它們失敗,返回從該服務的方法調用的單元測試返回的null。 – PositiveGuy

+0

#3我是新來的這個團隊,但他們發回一個自定義的狀態對象,以發送回調狀態... – PositiveGuy

1

當你對WCF有奇怪的問題時,首先要做的事情就是配置WCF跟蹤。這是一個非常強大的工具。你甚至可以看到消息的內容。

下面是本作的官方文檔:Configuring WCF Tracing

+0

是的,我做了一段時間後,但它對這個問題沒有太大的幫助。 – PositiveGuy