[英]To get Fault exception on client side
我是WCF的新手,正嘗試使用WebHttpBinding
綁定構建一個演示WCF項目。
這些項目工作正常,但我始終堅持故障異常的概念。 下面是我用來生成故障異常的代碼,但是在客戶端,我得到的是(400)錯誤的請求錯誤,InnerException為null。 我哪里出問題了?
public DataTable GetCreativesData(string id,string type)
{
try {
DataAccess da = new DataAccess();
string qryStr = @"select * from dbo.tbMyTable";
if (type != null && type != "")
qryStr += " WHERE1 type='"+type+"'";
DataTable dt = da.GetDataTable(qryStr);
return dt;
}
catch (FaultException ex) {
throw new FaultException("Improper Query");
}
}
對於錯誤異常,400錯誤是正確的,因為您是在向用戶指示他們提供的內容可能有問題。
還有就是當你提高沒有內部異常FaultException
,因為一個核心概念FaultException
是,它可以跨越技術(互操作性)的內部異常的概念是非常具體的.NET。
如果您確實想傳遞Exception
,則可以使用FaultException ,它允許您指定通用參數,然后將其設置為Exception
。 然后,您將創建並提出該請求。
要記住的另一個方面是您如何處理錯誤,在代碼中引發了全新的異常。 這意味着變量ex中的所有信息都將丟失。 除非您打算隱藏一些東西,否則可以嘗試一下
catch (FaultException ex)
{
throw;
}
此選項采用原始的FaultException
並再次引發它,從而保留其中的所有信息。
最后,在您的問題之外,SQL令我感到恐懼-看起來它可能容易受到SQL注入攻擊的攻擊 -您可能需要檢查一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.