有乙個服務錯誤契約是這樣的businessfault
1
throw
new
faultexception(
new
businessfault(), errmessage);
這樣丟擲後,客戶端一直收到的是communicationexception而不是上面的具體的exception.最後使用如下**通過
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
businessfault businessfault =
new
businessfault
,invalidargumentdetail =
new
invalidargumentdetail()
};
throw
new
faultexception(businessfault,errmessage);
為什麼呢?經過仔細排查,發現schema定義的一些元素是不能為空的,比如error和message,但是開發人員在寫的時候和編譯的時候都發現不了。我覺得這個如果生成**類時用建構函式來強制就好了。
王德水
wcf客戶端捕獲異常
直接使用exception進行捕獲,然後在監視器中檢視具體是哪乙個異常 檢視stacktrace server stack trace 在 system.servicemodel.channels.securitychannelfactory 1.securityrequestchannel.pro...
try catch無法捕獲異常設定
try catch const std exception e catch pragma once include include include pragma comment lib,dbghelp.lib 1.printfstackinfo 可列印當前的呼叫堆疊資訊 2.如try catch,無...
WCF遠端呼叫無法識別伺服器名
下面我介紹一下我的問題 我開發了一寫wcf服務,採用iis進行host。由於這個專案涉及到跨區域的使用,因此我們的客戶申請了乙個固定公網ip位址。公網ip直接連線在路由器上,然後通過路由器的埠對映,將公網ip位址對映到內網ip位址。內網伺服器安裝windows2003,iis6.0。由於wcf預設發...