0

同じ asmx 拡張子を持つ wcf サービスに変換した Web サービスがありました。私のサービスはJava、perlなどのさまざまなクライアントと通信するため、basicHttpbindingがあります。

HttpContext.Current を含む検証がありました。しかし、これは wcf サービスでは機能しないことを知っています。RequestContext または OperationContext を使用しようとしていますが、使用できません。使ってみた

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]

しかし、助けにはなりませんでした。テストのためにsoapUIからサービスを呼び出しています。

4

2 に答える 2

1

わかりましたので、解決策を見つけました。HttpContext.Current コンテキストを取得する方法はいくつかあります。OperationContext を使用するか、web.config で AspNetCompatibilityRequirements モードを Allowed に設定し、aspNetCompatibilityEnabled を true に設定して使用できます。

asmx サービスを wcf サービスに変換した私のケースでは、HttpHandler ハンドラーを変更して、System.ServiceModel.Activation.HttpHandler への asmx パスを削除および追加する必要もありました。

于 2010-08-07T05:41:48.440 に答える
1

WCF サービスを使用する場合は、OperationContext を使用することをお勧めします。HttpContext.Current.Items は常に Null であり、ASP.NET の間のみ実行されます。次のコードを追加してください:-

OperationContext.Current.Extensions.Add(extension);
于 2011-04-21T05:17:56.387 に答える