2015-05-14 136 views
0

我想在WCF服務中獲得完整的異常詳細信息,但是,我沒有收到發生異常的行號。WCF故障異常行號

try 
{ 
    ... 
} 
catch (Exception e) 
{ 
    throw new FaultException(e.ToString()); 
} 

我試過各種方式,如返回e.StackTrace等沒有運氣。請幫助我如何獲得發生異常的行號。

回答

0

用途:

catch (Exception e) 
    { 
     // Get stack trace for the exception with source file information 
     var st = new StackTrace(e, true); 
     // Get the top stack frame 
     var frame = st.GetFrame(0); 
     // Get the line number from the stack frame 
     var line = frame.GetFileLineNumber(); 
} 

它會給你你需要的信息。

+0

我已經試過了。它沒有給出行號。它只給出像'試圖除以零的信息。' – SiD

+0

好吧,它已被編輯。 –

0

此代碼將使堆棧跟蹤行號

try 
{ 
    ///... 
} 
catch (Exception e) 
{ 
    throw new FaultException<Exception>(ex, ex.Message); 
} 
+0

我試過這個,但我得到這個'現有連接被遠程主機強行關閉' – SiD

0

我會說你必須刪除整個trycatch塊:

一個更好的方法將只是註釋掉它:

//try 
//{ 
     Code.DoSomething(); //of course this code line is only a example and not working 

     /*the code inside the try block should now stop on the line, where the error appears*/ 
     // might look like this: http://www.homeandlearn.co.uk/csharp/images/conditional_logic/Error_Parse.gif 
//} 
//catch (Exception e) 
//{ 
     //throw new FaultException(e.ToString()); 
//}  

你應該得到的東西這樣的:我在咕發現(只圖像gle根據這個)

error window

+1

這沒有任何意義。它是一個WCF服務。 – SiD

+0

對不起,我完全在winforms中...我的頭腦在哪裏,我可能會重讀這個... – cramopy