我有一个ASMX web服务与我的ASP.NET web应用程序一起托管。现在,我需要让用户会话进入Web服务。为了测试这个我做了这个简单的方法:在.NET中获取会话ASMX web服务
[WebMethod(EnableSession = true)]
public string checkSession()
{
return HttpContext.Current.Session["userid"].ToString();
}
所以,首先我登录到我的web应用程序,然后在浏览器后藤我的互联网服务和对自动生成的测试页点击“checkSession”。我已经在3台电脑上测试过了。所有这三个工作都适用于webapp(因此会话正在创建等),其中2个返回Session [“userid”]的值调用webmethod,但是最后一台计算机返回“对象引用未设置为对象的实例“,因为Session是空的。
那么,这些计算机之间的区别是什么以及为什么我的ASP.NET应用程序可以在所有计算机上获得会话,但web服务无法通过?
你如何存储你的会话?如果in-proc需要asmx webservice作为webapp运行在相同的appPool上。你是否一直在为那台机器收到会话错误? – 2010-07-21 09:03:15
我真的不知道。所有即时消息都是,当他们最初在ASP.NET端登录时,我设置了: Session [“userid”] = theiridfromdb;首先,如何检查它是否在进程中,然后如何在同一个appPool中运行web服务? 是的,那台电脑总是给出错误。 – Matt 2010-07-21 09:21:11
它看起来像inproc是默认的,所以是的,我正在使用它。 我正在运行这个运行IIS6的专用服务器,而ASP.NET站点和web服务是一个应用程序。就像在IIS中它们是相同的应用程序,Visual Studio将它们的后端都编译到同一个DLL中。 – Matt 2010-07-21 09:30:50