2014-11-04 55 views
2

我有一個WCF的網絡服務,我遇到了一個奇怪的問題。WCF服務調用 - 超時時只有部分參數?

我們的一個供應商的呼籲我們的方法之一,並聲稱會向我們發送3個良好的參數。該方法所做的第一件事是將所有傳入參數的值記錄到我們的數據庫中。當我查看記錄的消息時,我看到只填充了2個參數。供應商聲稱這是因爲該方法在第三個參數發送之前超時。我的印象是,如果方法超時,我們會看到一個異常,而不是完全執行一些缺少參數的Web方法。

是供應商嗎?我們是否超時,只是用迄今爲止的參數執行方法?

謝謝!

+0

使用網絡監控工具(又稱嗅探器)來檢查什麼是你的供應商發送。你將得到他發送給你的服務的證明。超時可能會丟棄/損壞消息,但幾乎不會生成缺少值的可讀消息。確保你沒有使用Streamed運輸。 – Guillaume 2014-11-04 15:54:17

回答

2

WCF是基於消息,這意味着創建和發送整個消息,你不會得到的參數的部分列表,換句話說,參數將完全實現之前,你的服務方法被調用。回答沒有代碼的問題是很難完全理解的,但是你的供應商顯然不明白WCF如果認爲參數「超時」是如何工作的。

你會添加一些記錄,例如得到更好的服務:

<system.diagnostics> 
<trace autoflush="true" /> 
<sources> 
    <source name="System.ServiceModel" 
      switchValue="Critical, Error, Verbose, Warning, Information, ActivityTracing" 
      propagateActivity="true"> 
    <listeners> 
     <add name="sdt" 
      type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData= "SdrConfigExample.e2e" /> 
    </listeners> 
    </source> 
</sources> 
</system.diagnostics> 

這對你的web/config中添加對WCF服務端看到任何錯誤,以及WCF活動。但是,聽起來好像你沒有得到一個參數。