它是一个类库,它从网页中被调用
try
{
System.Net.WebClient wc = WebAccess.GetWebClient();
wc.UploadStringCompleted += new System.Net.UploadStringCompletedEventHandler(wc_UploadStringCompleted);
wc.UploadStringAsync(new Uri("http://" + MobileWLCUrl + urlCreateCacheAPI), GetJSONforGetMenuDetails(Id, MenuIds));
}
catch (Exception ex) { EngineException.HandleException(ex); }
void wc_UploadStringCompleted(object sender, System.Net.UploadStringCompletedEventArgs e)
{
string result = e.Result;
EngineException.CreateLog("Cache Created (for Menus: " + MenuIds + ") in API for LocationId: " + LocId);
}
伙计们,我试图异步访问这个 url,但它给了我这个错误,我们将不胜感激。
Asynchronous operations are not allowed in this context.
Page starting an asynchronous operation has to have the Async attribute set to true
and an asynchronous operation can only be started on a page prior to PreRenderComplete event.
at System.Web.AspNetSynchronizationContext.OperationStarted()
at System.Net.WebClient.UploadStringAsync(Uri address, String method, String data, Object userToken)
at System.Net.WebClient.UploadStringAsync(Uri address, String data)
谢谢...
最佳答案
将 Async="true"
参数添加到 @Page 指令。
<%@ Page Async="true" ... %>
西瓦尼,
您需要在以下代码调用的页面(存储在 "http://"+ MobileWLCUrl + urlCreateCacheAPI
中)应用此更改:
wc.UploadStringAsync(new Uri("http://" + MobileWLCUrl + urlCreateCacheAPI), GetJSONforGetMenuDetails(Id, MenuIds));
关于c# - Web 客户端 - 在此上下文中不允许异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648589/