車のパーツを扱うウェブショップを運営しています。パーツの横にある価格は、別の場所で実行されている Web サービスから読み込まれます。この Web サービスには、GetArticleInformation という Web メソッドが 1 つだけ含まれています。
この Web サービスには、別の場所で実行されている別のWeb サービス WebshopServiceClientへのリンクがあります。これには、車に関する情報が含まれ、価格が保持されます。
ユーザーが購入したい車両の一部を選択すると、最初の Web サービスが呼び出され、メソッドGetArticleInformationが実行されます。このメソッドでは、2 番目の Web サービス (データベース) のログオンを保持するセッションを作成します。このようにして、呼び出しごとに新しいログオンが必要になるのを防ぎたいと思います。
[WebMethod(EnableSession = true)]
public GetBackItems GetArticleInformation(User user, Items items)
{
//Create session if needed
client = (WebshopServiceClient)Session["SphinxLogon"];
if (client == null)
{
client = new WebshopServiceClient();
bool done = client.Logon();
if (done)
{
Session["SphinxLogon"] = client;
}
}
//Get information and send it back
...
}
Web ショップでユーザーがパーツを選択すると、セッションが作成されますが、次回ユーザーがパーツを選択すると、セッションは再び null になります。
私は何を間違っていますか、または何が欠けていますか?