2011-10-18 11 views
0

私はasp.netサーバコントロールからシリアライズすることで、webserviceを通してhttpcontextオブジェクトを渡したいと思います。サーバーコントロールでは機能しません。それはwebapplicationで動作しています。解決策を見つけるのを手伝ってください。httpcontextオブジェクトをシリアライズし、asp.netサーバーコントロールからwebserviceを経由する方法?

+0

私はasp.netサーバーコントロールからwebserviceを介してhttpcontextを渡そうとしています。しかし、それは動作しません。それは可能ですか?可能であれば私にご案内ください。 –

答えて

1

HttpContext.CurrentオブジェクトをWebアプリケーションからWebサービスまたはそのような通信の他の組み合わせに渡すことは意味がありません。

HttpContextクラスとその静的メンバーCurrentは、IIS内で実行されているWebアプリケーションまたはWebサービスで使用できるようになり、初期化されているはずです。

currentから別のアプリケーションプールまたはIISの別のアプリケーション内で実行するようにWebサービスが設定されている場合、WebフロントエンドのCurrentと異なるものが返されます。

ユーザ名、レスポンス、リクエストヘッダなどのいくつかのプロパティを渡す必要がある場合は、一連のパラメータを渡すか、必要なすべてをホストする独自のクラスを作成しますが、コンテキストを直接渡すことはできません。

場合によっては、コンテキストやセッションを取得できない場合は、何か問題が発生している可能性があります。例えば、HttpHandlersは、IRequireSessionStateを実装する場合にのみセッションを適切に使用し、HttpContextオブジェクトはProcessRequestメソッドのパラメータとしてハンドラに渡されます。

私は一般的には常に道があると思いますが、デザインやアーキテクチャは適切ではありませんが、ある階層から別の階層に自分でコンテキストを渡す必要はありません。

関連する問題