首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF帮助页与UriTemplate冲突

WCF帮助页与UriTemplate冲突
EN

Stack Overflow用户
提问于 2012-07-26 16:48:26
回答 2查看 1.3K关注 0票数 0

我有一个根UriTemplate,它在没有指定参数时返回默认数据。

代码语言:javascript
复制
[WebGet(UriTemplate = "")]

我在几个例子中看到了这种方法。

但是,我添加了另一个接受简单路径变量的模板:

代码语言:javascript
复制
[WebGet(UriTemplate = "{code}")]

然后通过代码过滤默认列表。

例如,http://localhost/items (作为基本ServiceRoute)显示默认的项列表,http://localhost/items/ABC显示项'ABC‘。

问题是,现在http://localhost/items/help显示了一个404错误,而不是自动生成的帮助页面,因为它将' help‘看作'code’参数的一个值(当没有记录匹配时,该操作返回"Not“状态)。

对于如何保留该UriTemplate,但不丢失帮助页,有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 23:10:04

帮助页面停止工作的原因是,定义为helpEnabledwebHttpEndpoint下的standardEndpoint属性被wcf的soap元数据以某种方式替换为启用配置。

因此,在REST web.config 4.0中启用帮助页的正确的.Net部分是,正如详细记录的那样:

代码语言:javascript
复制
<system.serviceModel>
 <standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
  </webHttpEndpoint>
</standardEndpoints>

尽管我从微软/Tony模板开始创建REST项目,该项目正确地配置了这个项目,但我认为发生的情况是,我还向web应用程序添加了一个OData服务。无论这是否是原因,上面的配置都被替换为:

代码语言:javascript
复制
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

现在,如果你盯着这段时间,谷歌‘帮助页wcf’凌晨一点,这当然是如何启用wsdl‘帮助’wcf‘soap风格’服务,所以你看到匹配的语法,并认为帮助是正确的休息,所以你把这个问题归咎于UriTemplates。

票数 0
EN

Stack Overflow用户

发布于 2012-07-26 17:10:16

尝试添加您的.svc地址。

所以,不要像这样做:

代码语言:javascript
复制
http://localhost/items/help

做得像

代码语言:javascript
复制
http://localhost/items.svc/help

它在这里的评论中:MSDN Rest帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11674124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档