Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC3 ASP.NET中的会话状态在本地工作但发布到IIS8时不工作时出现问题_C#_Asp.net Mvc_Asp.net Mvc 3_Session - Fatal编程技术网

C# MVC3 ASP.NET中的会话状态在本地工作但发布到IIS8时不工作时出现问题

C# MVC3 ASP.NET中的会话状态在本地工作但发布到IIS8时不工作时出现问题,c#,asp.net-mvc,asp.net-mvc-3,session,C#,Asp.net Mvc,Asp.net Mvc 3,Session,我有一个应用程序,它在数据库上执行搜索,并允许用户更新某些字段。当用户从编辑视图返回到搜索视图时,我希望显示原始搜索结果。我使用session存储了两个字符串,它们被传递给我的搜索操作以过滤搜索。当我在本地运行我的应用程序时,一切正常,但在我将应用程序发布到IIS8之后,会话状态似乎在我将更改保存到数据库并导航回搜索后被清除 以下是我的控制器中的操作结果: public ActionResult Search(string searchString, string SearchOption)

我有一个应用程序,它在数据库上执行搜索,并允许用户更新某些字段。当用户从编辑视图返回到搜索视图时,我希望显示原始搜索结果。我使用session存储了两个字符串,它们被传递给我的搜索操作以过滤搜索。当我在本地运行我的应用程序时,一切正常,但在我将应用程序发布到IIS8之后,会话状态似乎在我将更改保存到数据库并导航回搜索后被清除

以下是我的控制器中的操作结果:

public ActionResult Search(string searchString, string SearchOption) 
    {
        Session["searchString"] = searchString;
        Session["SearchOption"] = SearchOption;
        if (!String.IsNullOrEmpty(searchString))
        {
            searchString = searchString.Replace(" ", "");
            if (SearchOption == "PolicyNumber")
            {
                var vehicles = from v in db.Vehicles
                               where v.VehiclePolicyNumber == searchString
                               orderby v.VehiclePolicyNumber, v.DateVehicleAddedPolicy
                               select v;                    
                ModelState.Clear();
                return View(vehicles);
            }
            else
            {
                //Search for vehicle policy numbers
                var vehiclePolicies = from v in db.Vehicles
                               where v.RegistrationNumber == searchString
                               select v.VehiclePolicyNumber;

                //Search for vehicles with the above policy numbers
                var vehicles = from v in db.Vehicles
                                      where vehiclePolicies.Contains(v.VehiclePolicyNumber)
                                      orderby v.VehiclePolicyNumber, v.DateVehicleAddedPolicy
                                      select v;                    
                ModelState.Clear();
                return View(vehicles);
            }
        }
        else 
        {                
            var vehicles1 = from v in db.Vehicles
                            where v.VehicleMake == "g"
                            select v;
            return View(vehicles1);                
        }          
    }        

    public ActionResult editOnDate(string id)
    {
        var onDateToEdit = (from Vehicle in db.Vehicles where Vehicle.VehicleId.Equals(id) select Vehicle).First();            
        return View(onDateToEdit);
    }

    [HttpPost]
    public ActionResult editOnDate(string id, Vehicle vehicle) 
    {
        var onDateToEdit = (from Vehicle in db.Vehicles where Vehicle.VehicleId.Equals(id) select Vehicle).First();
        onDateToEdit.VehicleOnDate = vehicle.VehicleOnDate;
        db.SaveChanges();
        ViewBag.Message = "Saved!";
        return View(onDateToEdit);
    }
应使用以下操作链接将会话数据传递到搜索视图:

 <%: Html.ActionLink("Back to Search", "Search", "Vehicle", new {searchString = Session["searchString"], SearchOption = Session["SearchOption"]}, new { @class = "barButton" })%>


所有东西都在本地运行,但令人沮丧的是,它在发布时不起作用。任何帮助都将不胜感激。谢谢

您将会话存储在本地计算机和II8计算机的何处?您将在项目根目录的web.config中找到该设置。我怀疑II8安装没有正确配置。这就是你想要的吗?对不起,我是新来的是IIS8机器还是本地的?它是IIS8它是一个负载平衡的环境吗?这意味着有两个或多个web服务器一起运行应用程序。(不要为自己是新手而道歉:D)谢谢Phil:D。我不太确定,这是web.config中会话状态的唯一标记,所以可能是本地标记。我现在正在了解负载状态环境。请查看是否也可以找到服务器的web.config。我想它的会话状态标签会显示更多信息。