0

正常に動作していた Web サービスの URL があり、現在次のエラーが返されています: UriTemplate は、セグメントまたはクエリ パーツの有効な形式として "{}" をサポートしていません。

私は通常、Visual Web Developer 2010 Express でファイルを操作します。それらが機能している場合と機能していない場合(私が考えることができる)の間で行った唯一のことは、Visual Studio 2010のProfessionalバージョンでファイルを操作したことです。次に、それらを保存し、開いてExpressで再び作業しています. (.sln ファイルを確認しましたが、それらは同一です。)

(更新) 投稿の残りの部分で問題について詳しく説明していますが、これが問題の原因だと思います: VS 2010 Professional が構成ファイル (または何らかのファイル) を編集し、その後 Visual で開いたときに解決策が壊れました。 Web 開発者 2010 Express。しかし、どのファイルが編集されたかを特定できませんでした。誰かが疑わしいファイルを教えてくれるかもしれません。MyRootDirectory/Properties にはありません。私はそれらを試しました。

問題の詳細:

この URL は以前は機能していましたが、現在は上記のエラーがスローされます

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

この URL は以前は機能していましたが、現在は同じエラーを返しています。

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

リクエストがコード ページに届きません。- そこのブレークポイントはヒットしません。

これがスタック トレースの先頭です。どういうわけか、私のURLがそこに到達する前に変更されていると思います。

[FormatException: UriTemplate は、セグメントまたはクエリ部分の有効な形式として '{}' をサポートしていません。] System.UriTemplateHelpers.IdentifyPartType(文字列部分) +3049859

System.UriTemplateQueryValue.CreateFromUriTemplate(文字列値、UriTemplate テンプレート) +49

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

2 つのメソッドの WebGet 属性は次のとおりです。

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

次のブラウザを使用しても同じ結果が得られます: IE8、Chrome、FireFox

アイデア?

4

1 に答える 1

2

私は、必ずしもあなたが問題を抱えているものではなく、次のようなWebメソッドを探します:

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

UriTemplate を宣言して、{} 内にパラメーター名を追加するのを忘れるのは非常に簡単です。

于 2012-06-26T19:54:19.437 に答える