我在AWS中运行了一个REST服务,它返回了一些信息。当我从我的应用程序中访问该服务时,一切正常。当我在调度任务中使用完全相同的代码时,它不会。
奇怪的是,没有错误,没有例外,没有任何提示,什么通过Visual Studio中的单步执行代码时,对其中JsonConvert.DeserializeObject
它不”被称为线打F10时是怎么回事以外跳过执行它的线,但它与击中F5相同。
我的代码是:
private void infoRetrieval_DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
string response = e.Result;
if (response != null)
{
try
{
CDateTime info = null;
CJsonDateTime r = JsonConvert.DeserializeObject<CJsonDateTime>(response);
info = new CDateTime(r);
if (info != null)
{
// Indicate that there is a new info
}
}
catch (Exception exc)
{
// The exception can't be handled in a meaningful way, so it's ignored.
}
}
}
}
这完成实际的呼叫到该web服务的代码看起来是这样的,它也是我同时使用在我的应用程序和在我剂作为OnInvoke方法的一部分完全相同的代码:
infoRetrievalClient = new WebClient();
infoRetrievalClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(infoRetrieval_DownloadCompleted);
infoRetrievalClient.DownloadStringAsync(new Uri(<the URI to the webservice>));
请注意,我在我的应用程序中使用完全相同的代码以及我的ScheduledTaskAgent。此外,我检查了两种情况下检索到的字符串是完全相同的。这里的问题只是我无法解析JSON并使用数据。
对NotifyComplete的调用是在OnInvoke中。
任何帮助都受到高度赞赏,因为我现在被困住了。
伊万
答案 0 :(得分:2)
我修好了,事实证明伊戈尔的问题让我走上正轨。我将NotifyComplete移动到了web请求的回调中,现在它处理得非常好。
谢谢伊戈尔。
伊万