我的问题是:
我的 WebClient 使用云中的函数 (http://127.0.0.1:81/Service1.svc/Data)。
但不可能多次调用(例如进行更新)。
这是我的代码:
private void button_Click(object sender, RoutedEventArgs e)
{
WebClient cnt = new WebClient();
cnt.DownloadStringCompleted += new DownloadStringCompletedEventHandler(cnt_DownloadStringCompleted);
cnt.DownloadStringAsync(new Uri("http://127.0.0.1:81/Service1.svc/Data"));
}
void cnt_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
int num = JsonHelper.FromJson<int>(e.Result);
textbox.Dispatcher.BeginInvoke(() => textbox.Text = Convert.ToString(num));
}
每次点击后,应用程序在 cnt_DownloadStringCompleted 中运行良好,但结果 (e.Result) 在服务器中更新后永远不会改变。
在 Azure 服务中,我通过中断注意到函数(数据)仅被调用一次(第一次)。
如何多次调用我的服务?
最佳答案
检查您的服务器端以确保您不允许缓存。如果您的服务中有响应上下文,请设置:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
或者,如果您没有能力执行此操作,请在查询字符串上发送不断变化的无意义参数,例如:
http://127.0.0.1:81/Service1.svc/Data?nonsense=190AF142-4341-47DC-9CF5-3BC3ACBD02EE
您可以每次生成并发送新的 guid,甚至可以使用 DateTime.Now.Ticks.ToString()
。话虽这么说,如果您可以控制服务器端,请消除缓存,因为这种方式是一种严重的黑客攻击。
关于c# - WP7.1应用程序中的WebClient仅调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668884/