码迷,mamicode.com
首页 > 其他好文 > 详细

WCF REST模式下的UriTemplate路径问题

时间:2018-08-10 10:56:47      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:inf   image   ppc   operation   inter   item   info   col   val   

问题:在WCF4.0中,用UriTemplate进行表明路径参数的时候会出现问题

1.创建的项目是Service.Interface【4.0】和Service【4.0】还有Client【4.0】

技术分享图片

 

2.代码如下 Interface

[ServiceContract]
public interface IEmployees
{
[WebGet(UriTemplate = "Add/{x}/{y}")]
double Add(double x, double y);

}

技术分享图片

Service

技术分享图片

program

技术分享图片

appconfig

技术分享图片

client还没有用到即发生错误

错误是

System.InvalidOperationException:“约定“IEmployees”中的操作“Add”具有非“字符串”类型的路径变量“x”。UriTemplate 路径段的变量类型必须为“字符串”。”

技术分享图片

 

 看网上的解决方案也没找到.

这个时候两个中解决方案,一种是直接把参数加载后面的

可以使用int等值类型数据.注意必须是参数,不能是uri路径的一部份.也就是说,你必须写成这样:

uritemplate = "?id=id"

public xxxx get(int id);

如果不想用,则表示暂时只实现了将所有的参数类型更改为string,不报错了

但是,在3.5下就不会出错,不知道为什么,有大神明白告诉一下

但是会有另外一个错误

System.InvalidOperationException:“ContractDescription“IEmployees”有零个操作;协定必须至少有一个操作。”

技术分享图片

 

 是因为接口里所有的方法都没有加[OperationContract],加上就OK了.

但是这个[OperationContract]还不能加在add上否则还是会报上面的错误

技术分享图片

 

必须得

技术分享图片

才可以

但是在4.0中即使加上[OperationContract] 也会出现刚刚的那个模板必须用字符串的错误,不知道是不是4.0改版了.

技术分享图片

 

 调用成功

WCF REST模式下的UriTemplate路径问题

标签:inf   image   ppc   operation   inter   item   info   col   val   

原文地址:https://www.cnblogs.com/Eurasian-Magpie/p/9452809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!