新建Rest服务接口:
在Silverlight 客户端添加服务引用,名称为:ServiceReference1.
在页面上添加一个按钮,按钮的Click事件代码如下:
client.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(client_GetDataCompleted);
client.GetDataAsync(35); //Try GetData
}
void client_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)
{
}
</div>
运行,结果如下:
可以看到实际的异常是“尝试除以0”,但是由于浏览器限制,所有的异常都是NotFound。
在msdn上有两种方法可以解决这个问题,
最简单的就是在App.xaml.cs代码里面使用RegisterPrefix来使用备用客户端 HTTP 堆栈
WebRequestCreator.ClientHttp);
//other Code
}
</div>
再次运行代码:
这是SL调用WCF服务如何处理异常的方式,那么调用Rest服务呢?
首先要修改Web.config 节点下的serviceModel以让它支持Rest。
OK,服务的Web.config文件已经配置完毕了,接下来要为GetData方法添加WebGet特性修饰了。
return string.Format("You entered: {0}", value);
}
}
</div>
运行:
地址为:http://localhost:9541/Service1.svc/help