初めての Web サービスを作成したばかりなので、Web サービスの知識は存在しないと仮定しましょう。Web サービスから dbClass 関数を呼び出そうとしています。ただし、セッションにあるパラメーターがいくつか必要です。これらのセッション変数を Web サービスから呼び出す方法はありますか??
7 に答える
ASP.NET Webサービスを使用していて、セッション環境を維持したい場合は、セッションが必要であることを示す属性を使用してWebサービスメソッドを装飾する必要があります。
[WebMethod(EnableSession = true)]
public void MyWebService()
{
Foo foo;
Session["MyObjectName"] = new Foo();
foo = Session["MyObjectName"] as Foo;
}
これを実行すると、aspxと同様のセッションオブジェクトにアクセスできるようになります。
メトロ。
セッション変数を追加するサービスレイヤーの複雑さを増すことは避けてください。誰かが以前に指摘したように、Webサービスは、引数リストからタスクを実行するために必要なすべてのものを取得する分離されたメソッドと考えてください。
一般に、Webサービスはセッションデータに依存するべきではありません。それらを通常の方法と考えてください。パラメータが入り、答えが出てきます。
Session["username"].ToString(); が必要な場合 aspx の背後にある他の C# ページと同様に、WebService メソッドの上の [WebMethod] を [WebMethod(EnableSession = true)] に置き換えるだけです。
おかげで:)メトロ
あなたの質問は少し曖昧ですが、私は最善を尽くして答えます。
セッション変数は、Webサービスをホストするサーバーではなく、Webサービス呼び出しを行うサーバーに存在すると想定しています。その場合、Webサービスメソッドのパラメーターとして必要な値を渡す必要があります。
たぶんこれでうまくいくでしょう