特殊な文字列パラメータでURLへのリクエストを取得し、私はRESTスタート・キットのプレビュー2でシンプルなRESTコレクションWCFサービスを書いたテンプレートプロジェクトは、その内部コレクションアイテムとして辞書コレクション・インスタンスでサービスクラスを提供します。各項目にはキーと値があります。RESTサービスは:
問題は鍵が含まれている場合ということである「と。」 'ProductA.Item1'のようなものであれば、特定のアイテムに対するクエリは機能しません。このアイテムへのURLのGETリクエストのようなものです:
http://localhost:1247/Service.svc/ProductA.Item1
そのIISが私のRESTサービスのOnGetItem(文字列ID)メソッドにパラメータとしてxxx.xxx渡すのではなく資源としてURLを扱うように見えます。 'ProductAItem1'のようなドットなしのキーで内部コレクションを構築する '.Item1'の部分を削除すると、正常に動作します。
私も製品への属性のUriTemplate({ID})のWebGet私を変更しようとし、このカスタマイズされたURLを試してみました:
http://localhost:1247/Service.svc/Products(ProductA.Item1)
http://localhost:1247/Service.svc/Products('ProductA.Item1')
それでも私は自分のコードに到達することはできませんOnGetItem(文字列ID)メソッドを。ドットのようなキーがなければ、カスタマイズされたURLもうまく動作します。
ドットまたは '。' URLには、IISサーバーによる特殊文字かどうか。特殊なcharなら、どうやってそれをエスケープしたり、ドットの中に文字列パラメータのようにしたりできますか?それとも、私のURLにドットを使うことができませんか?
これは非常に可能です。ルーティングサービスはOnGetItem()への呼び出しをブロックする可能性があります。私はASP.Netフォーラムで再チェックします。ありがとう! –