繁体   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