错误显示:
异常详细信息: System.Web.HttpException: 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/aspnet_state/Parameters/AllowRemoteConnection 的值,确保服务器接受远程请求。
解决方法:
方法一:
通过命令行解决,
开启服务代码如下:
cmd
echo off
echo. ------------开启ASP.NET 状态服务-------------
Net Start aspnet_state
echo. ------------开启ASP.NET 状态服务成功-------------
exit
关闭服务代码如下:
echo off
echo. ------------关闭ASP.NET 状态服务-------------
Net Stop aspnet_state
echo. ------------关闭ASP.NET 状态服务成功-------------
exit
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using Microsoft.Win32;
using System.Diagnostics;
using System.IO;
namespace Classsetup
{
[RunInstaller(true)]
public class Classsetup : System.Configuration.Install.Installer{
public override void Install(System.Collections.IDictionary stateSaver)
{
try
{
Process[] ASPNET_Proc = Process.GetProcessesByName("aspnet_wp");
for(short i = 0; i < ASPNET_Proc.GetLength(0); i++)
{
//ASPNET_Proc[i].Close();
ASPNET_Proc[i].Kill();
ASPNET_Proc[i] = null;
}
}
catch
{
}
try
{
Registry.SetValue("HKEY_LOCAL_MACHINE//SYSTEM//ControlSet001//Services//aspnet_state", "Start", 2);
Process MyProcess = new Process();
MyProcess.StartInfo.FileName = "NET";
MyProcess.StartInfo.Arguments = "Start ASPNET_STATE";
MyProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
MyProcess.StartInfo.CreateNoWindow = true;
MyProcess.Start();
MyProcess.WaitForExit();
MyProcess.Close();
MyProcess = null;
}
catch
{
}
}
}
}
方法二:WebConfig里面
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
你是不是使用“StateServer”,如果是,请参考:
使用 StateServer 模式
确保 ASP.NET 状态服务正在将存储会话状态信息的远程服务器上运行。该服务是随 ASP.NET Premium 版一起安装的,并且该服务默认情况下位于 <Drive>:/Program Files/ASP.NET/Premium/version/aspnet_estate.exe。
在应用程序的 Web.config 文件中,设置 mode=StateServer 并设置 stateConnectionString 属性;例如 stateConnectionString="tcpip=sarath:42424"。
方法三: