C# MVC3 ASP.NET中的会话状态在本地工作但发布到IIS8时不工作时出现问题
我有一个应用程序,它在数据库上执行搜索,并允许用户更新某些字段。当用户从编辑视图返回到搜索视图时,我希望显示原始搜索结果。我使用session存储了两个字符串,它们被传递给我的搜索操作以过滤搜索。当我在本地运行我的应用程序时,一切正常,但在我将应用程序发布到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)
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。我想它的会话状态标签会显示更多信息。