我的服务器端代码:
[WebMethod(CacheDuration = 0, EnableSession = true)]
public static int UserID()
{
if (HttpContext.Current.Session["UserID"] == null) return 0;
int UserID = Convert.ToInt32(HttpContext.Current.Session["UserID"]);
return (UserID);
}
我的客户端代码:
$.ajax({
type: "POST", cache: false,
url: "Login.aspx/UserID",
data: "{'r':" + rnd() + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg);
}
});
此代码在我的localhost上运行良好。 和“UserID”ajax调用,返回Session参数的正确值。
但是当我尝试在服务器上传我的网站时,“UserID”ajax调用总是返回false !!
我的服务器是asp.net 2.0,我正在使用jquery 1.3.2
所以请帮助解决这个问题。
答案 0 :(得分:1)
阅读本文:ASP.NET Session State FAQ 我在这个问题中找到了答案:
将sessionState模式更改为“StateServer”解决了这个问题。 使用以下代码:
<sessionState mode="StateServer"
stateConnectionString="tcpip=localhost:42424"
cookieless="false"
timeout="999"/>
答案 1 :(得分:0)
要检查的一些事项:
您使用的是WebFarm配置吗?在WebFarm配置中使用会话时可能会出现问题。
您是否使用Fiddler或FireBug等工具检查网络流量?在AJAX调用期间是否发送了ASP.NET Auth cookie?
您能否确认会话var有效?