无法捕获服务器上的异常

时间:2014-11-12 08:56:56

标签: c# web-services wcf azure

我已经得到了以下方法,并且正常运行,正如预期的那样。

[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;
}

然而,向其添加实际读数,例如,例如here,我收到以下错误,因此下面的方法无效。

  

服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。

[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和我通常会感到困惑。 :)

1 个答案:

答案 0 :(得分:0)

一切都在本地运作吗?

没有理由(特定于Azure)不能捕获您的例外。在您的方法执行之前,管道可能出现问题!

如果你明确抛出你甚至看不到你的异常,那么在调用你的方法之前执行管道会停止!检查这个有用的guide on troubleshooting Azure Web Sites。 您还可以attach Visual Studio debugger to your live Azure WebSite获得更深入的见解!