Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对POST和GET操作WCF REST C使用相同的UriTemplate属性#_Wcf_Rest_Post_.net 3.5_Get - Fatal编程技术网

对POST和GET操作WCF REST C使用相同的UriTemplate属性#

对POST和GET操作WCF REST C使用相同的UriTemplate属性#,wcf,rest,post,.net-3.5,get,Wcf,Rest,Post,.net 3.5,Get,调用GET操作时,我的WCF服务出现“不允许使用方法”错误。我知道为什么会这样,但不明白为什么不允许这样。我想我可能做错了什么。我正在尝试为GET和POST使用相同的UriTemplate(属性)结构。我遵循标准的休息服务惯例: GET - /api/v1/{entityType} - to get a list of {entityType} e.g. /api/v1/cars POST - /api/v1/{entityType} - to insert an entity e.g /api

调用GET操作时,我的WCF服务出现“不允许使用方法”错误。我知道为什么会这样,但不明白为什么不允许这样。我想我可能做错了什么。我正在尝试为GET和POST使用相同的UriTemplate(属性)结构。我遵循标准的休息服务惯例:

GET - /api/v1/{entityType} - to get a list of {entityType} e.g. /api/v1/cars
POST - /api/v1/{entityType} - to insert an entity e.g /api/v1/car
[运营合同]
[WebGet(BodyStyle=WebMessageBodyStyle.Bare,
ResponseFormat=WebMessageFormat.Json,
UriTemplate=“api/v1/{entityType}?skip={skip}&take={take}”)]
List GetEntityList(字符串entityType、int skip、int take);
[经营合同]
[WebInvoke(Method=“POST”,
BodyStyle=WebMessageBodyStyle.Bare,
ResponseFormat=WebMessageFormat.Json,
RequestFormat=WebMessageFormat.Json,
UriTemplate=“api/v1/{entityType}”)]
实体插入实体(字符串entityType,实体实体);

我知道我的模板是相同的,但为什么不允许这样做?服务器没有检测到我正在尝试执行的操作吗?

您没有描述服务的宿主环境(IIS、窗口服务等),但服务主机可能未配置为处理GET或POST请求。例如,IIS 7默认情况下不接受PUT请求,并给出类似的错误。很抱歉,我正在使用IIS 7并将其配置为(默认情况下工作)接受
GET、POST、PUT
DELETE
。我提出了一个暂时的解决办法,但一旦我看到它在生产中正常工作,我将把它作为一个解决方案发布在这里。问题是
POST
{entityType}
参数。如果我
PUT
GET
api/v1/{entityType}/{id}
上,它工作得很好。问题是由
POST
引起的。