没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
新建Rest服务接口: 代码如下:[ServiceContract]public interface IService1{ [OperationContract] string GetData(int value);}接着新建一个服务实现类: 代码如下:public class Service1 : IService1{ public string GetData(int value) { int i = 0; int j = 5 / i; return string.Format(“You entered: {0}”, val
资源推荐
资源详情
资源评论
解析解析Silverlight调用调用WCF/Rest异常的解决方法异常的解决方法
新建新建Rest服务接口:服务接口:
代码如下:
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
接着新建一个服务实现类:接着新建一个服务实现类:
代码如下:
public class Service1 : IService1
{
public string GetData(int value)
{
int i = 0;
int j = 5 / i;
return string.Format(“You entered: {0}”, value);
}
}
在这里让Service1 抛出”divided by zero exception:”
代码如下:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name=”ServiceBehavior”>
<serviceDebug includeExceptionDetailInFaults=”true” />
<serviceMetadata httpGetEnabled=”true” />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration=”ServiceBehavior” name=”WcfService1.Service1″>
</service>
</services>
</system.serviceModel>
在这里注意<serviceDebug includeExceptionDetailInFaults=”true” />
在Silverlight 客户端添加服务引用,名称为:ServiceReference1.
在页面上添加一个按钮,按钮的Click事件代码如下:
代码如下:
private void Button_Click(object sender, RoutedEventArgs e)
{
Service1Client client = new ServiceReference1.Service1Client();
client.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(client_GetDataCompleted);
client.GetDataAsync(35); //Try GetData
}
void client_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)
{
}
运行,结果如下:运行,结果如下:
可以看到实际的异常是“尝试除以0”,但是由于浏览器限制,所有的异常都是NotFound。
在msdn上有两种方法可以解决这个问题,
最简单的就是在App.xaml.cs代码里面使用RegisterPrefix来使用备用客户端使用备用客户端 HTTP 堆栈堆栈
代码如下:
public App()
{
bool bRegisterPrefix = WebRequest.RegisterPrefix(http://localhost:9541/,
WebRequestCreator.ClientHttp);
//other Code
}
再次运行代码:
这是SL调用WCF服务如何处理异常的方式,那么调用Rest服务呢?
首先要修改Web.config 节点下的serviceModel以让它支持Rest。
代码如下:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name=”EndpointBehavior”>
<webHttp helpEnabled=”true” defaultOutgoingResponseFormat=”Json”
faultExceptionEnabled=”true” />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name=”ServiceBehavior”>
<serviceDebug includeExceptionDetailInFaults=”true” />
<serviceMetadata httpGetEnabled=”true” />
</behavior>
</serviceBehaviors>
剩余7页未读,继续阅读
资源评论
weixin_38715879
- 粉丝: 4
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功