UriTemplate FormatException“{}”不是段或查询部分的有效格式

时间:2012-06-16 19:21:09

标签: wcf rest uritemplate

我的网络服务网址工作正常,现在返回以下错误:UriTemplate不支持“{}”作为细分或查询部分的有效格式。

我通常使用Visual Web Developer 2010 Express中的文件。我在他们工作和不工作之间做的唯一事情(我能想到的)是我在Visual Studio 2010的专业版中处理文件。然后我保存了它们,然后打开我现在再次在Express中工作。 (我检查了.sln文件,它们完全相同。)

(更新)帖子的其余部分更详细地描述了问题,但这是我认为导致问题的原因:VS 2010 Professional编辑了一个配置文件(或某个文件),这在后来打开时打破了解决方案在Visual Web Developer 2010 Express中。但我无法弄清楚哪些文件已被编辑。也许有人可以告诉我哪些文件是可疑的。它不在MyRootDirectory / Properties中。我试过了。

问题详情:

这个网址曾经工作过,现在它抛出上面的错误

http://localhost:52631/WebServices/gg.svc/GetStoresForDropdown

这个网址曾经工作过,现在也返回相同的错误。

http://localhost:52631/WebServices/gg.svc/StoreGroceryTable?UserId=1&StoreId=2

请求未进入我的代码页。 - 断点不会受到打击。

这是堆栈跟踪的顶部。我认为,不知何故,我的网址在到达之前就会被修改。

[FormatException:UriTemplate不支持'{}'作为段或查询部分的有效格式。] System.UriTemplateHelpers.IdentifyPartType(String part)+3049859

System.UriTemplateQueryValue.CreateFromUriTemplate(字符串值,UriTemplate模板)+49

System.UriTemplate..ctor(String template,Boolean ignoreTrailingSlash,IDictionary`2 additionalDefaults)+1004

这两种方法的WebGet属性是:

[WebGetAttribute(UriTemplate = "GetStoresForDropdown", ResponseFormat = WebMessageFormat.Json)]
[WebGetAttribute(UriTemplate = "StoreGroceryTable?UserId={UserId}&StoreId={StoreId}", ResponseFormat = WebMessageFormat.Json)]

我使用这些浏览器获得相同的结果:IE8,Chrome,FireFox

想法?

1 个答案:

答案 0 :(得分:1)

我会寻找任何网络方法,不一定是你遇到问题的方法,有类似的东西:

[WebInvoke(UriTemplate = "(some url)?Param1={}&..."]

声明UriTemplate非常容易,忘记在{}中添加参数名称。