簡體   English   中英

無法在服務器上捕獲異常

[英]Unable to catch exception on server

我有以下方法,並且按預期運行。

[OperationContract]
[WebGet(UriTemplate = "GetStuff", ResponseFormat = WebMessageFormat.Json)]
public String GetListOfTemplates()
{
  String result = "time is " + DateTime.Now.ToString("HH:mm:ss");

  try
  {
    String url = "...";
    WebRequest request = WebRequest.Create(url);
  }
  catch (Exception exception)
  {
    result = exception.Message + "\n\n" + exception.InnerException.Message;
  }

  return result;
}

但是,向其中添加一個實際的讀取,例如此處所示 ,出現以下錯誤,因此下面的方法不起作用。

服務器在處理請求時遇到錯誤。 有關更多詳細信息,請參見服務器日志。

[OperationContract]
[WebGet(UriTemplate = "GetStuff", ResponseFormat = WebMessageFormat.Json)]
public String GetListOfTemplates()
{
  String result = "time is " + DateTime.Now.ToString("HH:mm:ss");

  try
  {
    String url = "...";
    WebRequest request = WebRequest.Create(url);
    using (Stream stream = request.GetResponse().GetResponseStream())
      using (StreamReader reader = new StreamReader(stream))
        result = reader.ReadToEnd();
  }
  catch (Exception exception)
  {
    result = exception.Message + "\n\n" + exception.InnerException.Message;
  }

  return result;
}

當然有一個問題,為什么它不起作用以及如何解決它,但是令我感到困惑(並使我無法進行調試)的是沒有捕獲到異常並將其呈現給客戶端。 另外,我也不知道如何檢查服務器上的日志,因為它是Azure,當我沒有收到異常消息時,我通常會感到困惑。 :)

一切都在本地運作嗎?

沒有理由(天藍色特定)不會導致您的異常被捕獲。 在您的方法執行之前,管道可能出了一些問題!

如果您顯式拋出異常,甚至看不到異常,那么執行管道會在調用方法之前停止! 檢查此有用的指南,對Azure網站進行故障排除 您還可以將Visual Studio調試器附加到實時Azure網站上,以獲得更深入的見解!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM