我正在 WCF 上构建一个 REST 服务,我正在编写的方法之一是 GetProfile,它将返回给定用户名的配置文件。用户名将包括用户的域,因此将具有以下格式:“域\用户名”。
因此,我有一个名为 Profiles.svc 的服务,它设置了以下端点:
[OperationContract]
[WebGet(UriTemplate = "/{username}", ResponseFormat = WebMessageFormat.Xml)]
IRestResponse GetProfile(String username);
但是,当我尝试访问http://server/profiles.svc/DOMAIN%5cusername上的服务时(%5c 是反斜杠的 urlencoded 形式),我收到以下错误:
“/”应用程序中的服务器错误 HTTP 错误 400 - 错误请求
即使在我的 GetProfile 实现中没有实际定义代码时也会发生这种情况,因此我相信在 WCF 尝试将 URI 绑定到方法时会引发错误。
为了允许将反斜杠添加到 REST WCF 服务中的 URL,是否需要将一些设置添加到我的 Web 服务配置中?还是根本不允许使用反斜杠?