我的网络服务网址工作正常,现在返回以下错误: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
想法?
答案 0 :(得分:1)
我会寻找任何网络方法,不一定是你遇到问题的方法,有类似的东西:
[WebInvoke(UriTemplate = "(some url)?Param1={}&..."]
声明UriTemplate非常容易,忘记在{}中添加参数名称。