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)]
以及它做了什么或确认了什么。
如果有人不使用它,那会发生什么?
答案 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?