2

単純な WCF サービスが定義されていると仮定しましょう

[OperationContract, WebInvoke(Method = "GET", UriTemplate = "*")]
string TestMe ()

URLを書き換えるシンプルなhttpモジュール

context.BeginRequest += (s,e)=>{
var ctx = HttpContext.Current;
var method = ctx.Request.AppRelativeCurrentExecutionFilePath.RemoveFirst("~/");
var args = ctx.Request.QueryString.ToString();               
ctx.RewritePath("~/MyService.svc", method, args, false);
}

したがって、メソッドへの各呼び出しは、パラメーターを使用して TestMe メソッドに変換されます

ここでリクエスト全体を投稿したいのですが、

[OperationContract, WebInvoke(Method = "POST", UriTemplate = "*")]
string TestMe (Stream request)

この呼び出し RewritePath では、サービス リクエスターによって投稿されたストリームが渡されず、回避策を見つけることができませんでした。URLを書き換えて、元のリクエストバイト配列を転送し続けるにはどうすればよいですか?

4

1 に答える 1

0

POST 要求の処理中、URL 書き換えは HTTP 要求の本文には影響しません。

一方、クエリ文字列は URL の一部であり、それを新しい URL に正しく転送したようです。

あなたの症状は何ですか?

于 2012-04-25T17:03:20.817 に答える