我有一个包含汽车零件的网上商店。零件旁边的价格是从在其他地方运行的 Web 服务加载的。此 Web 服务仅包含一个 Web 方法:GetArticleInformation。
在这个网络服务中,有一个链接到另一个在其他地方运行的网络服务 WebshopServiceClient,其中包含有关汽车的信息并保存价格。
现在,当用户选择他想要购买的车辆的一部分时,调用第一个 Web 服务并执行GetArticleInformation方法。在这种方法中,我想创建一个会话来保存第二个 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
...
}
现在,当网店中的用户选择一个部件时,会创建会话,但下次用户选择一个部件时,会话再次为空。
我做错了什么或我错过了什么?