ASP.NET State service错误的解决方法

错误显示:

异常详细信息: 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"。

 方法三:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值