我有生产 IIS 服务器和一些 ASP.NET MVC 应用程序。我遇到了一些我无法捕获的棘手错误。它链接到 session 数据。我如何导出/查看/查看此类用户 session ? session 存储有默认的 IIS 配置——进程内。
<小时/>编辑
顺便说一句,我有必要的适当的用户 session ID。
<小时/>编辑2
好吧,伙计们,即使我现在无法导出该数据,您能否给我指出一些 session 状态服务器或类似的东西,我可以使用它来存储 session 数据并进一步查看它? 我知道 SQL Server 可以,但它对于此类问题来说非常严重。
最佳答案
Chris 正确地遵循了他的想法,您可以编写一个例程,将 session 对象的内容输出到文件(一种自定义日志)。
//Controller Action where you store some objects in session
public ActionResult Index()
{
var myObj = new { strTest = "test string", dtTestValue = DateTime.Now, listTest = new List<string>() { "list item 1", "list item 2", "list item 3" }};
Session["test1"] = "Test";
Session["test2"] = myObj;
return View();
}
//Controller Action where you output session objects to a file
[HttpPost]
public ActionResult Index(FormCollection form)
{
//Routine to write each sessionObject serialized as json to a file
foreach (string key in Session.Keys)
{
var obj = Session[key];
JavaScriptSerializer serializer = new JavaScriptSerializer();
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\CustomAspNetLog.txt", true))
{
file.WriteLine(DateTime.Now.ToString() + "\t" + serializer.Serialize(obj));
}
}
return View();
}
如果您需要经常调用该例程,您可以将其放入某个辅助类中,并在 Controller 操作中随时调用它。然后您就可以在您认为必要的每一步检查 session 中的真实数据。
关于asp.net - 调试时导出 IIS 进程内 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929507/