关于WCF中的UriTemplate用法和AspNetCompatibilityRequirements用法WCF

时间:2014-05-08 12:49:51

标签: wcf

1)我从未设计或开发任何wcf服务与休息方法。因此,当我浏览大量类似的文章时,我会注意到一个关键字是UriTemplate。

所以想知道什么是UriTemplate及其作用?

我见过几种不同类型的UriTemplate,如下所示

UriTemplate = "/X/{y}?Z={z}")
UriTemplate = "/GetPeople"
UriTemplate = "/GetPerson?id={id}"
UriTemplate = "Auth/Login"

是什么意思/ X / {y}?Z = {z}或GetPerson?id = {id} ??

当方法名称 AuthLogin

时,这意味着什么是UriTemplate =“Auth / Login”
[WebInvoke(Method = "POST", UriTemplate = "Auth/Login",  BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    public bool AuthLogin(string userName, string password)
    {
        var provider = (SqlMembershipProvider)Membership.Provider;
        if (provider.ValidateUser(userName, password))
        {
            FormsAuthentication.SetAuthCookie(userName, true);
            return true;
        }
        return false;
    }

2)什么是AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]以及它做了什么或确认了什么。 如果有人不使用它,那会发生什么?

1 个答案:

答案 0 :(得分:1)

URITemplate用于控制基于模板的WCF REST服务URI生成。为了为每个方法和动词组合启用URI的自定义,WCF添加了使用特殊模板语法为每个资源定义URI的功能。此语法允许您使用可替换标记定义您希望每个方法与HTTP谓词一起表示的URI结构。

以下文章提供了一个很好的概述:
http://debugmode.net/2010/06/02/urirest1/

关于AspNetCompatibilityRequirements的第二个问题,以下StackOverflow帖子似乎提供了很好的细节:
Why does AspNetCompatibilityRequirementsMode.Allowed fix this error?