无法捕获服务器上的异常

本文关键字:异常 服务器 | 更新日期: 2023-09-27 18:30:14

我得到了下面的方法,它的行为正如预期的那样正常。

[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特定)不捕获您的异常。在执行方法之前,管道可能出现问题!

如果显式抛出时甚至看不到异常,那么执行管道将在调用方法之前停止!查看此有关Azure网站疑难解答的有用指南。您还可以将Visual Studio调试器附加到您的实时Azure网站,以获得更深入的见解!