Visual Studio在重建之间保持会话等

时间:2009-09-04 13:50:28

标签: visual-studio visual-studio-2008 iis

我想知道是否有办法让会议继续进行。

我厌倦了在重建/构建之间失去会话,如果我在项目中做了太多改动或者将代码提交到我们的SVN(通过VisualSVN的龟)。我正在开发一个包含大量jQuery的ASP.NET MVC项目。

我想这样做,因为我在一个屏幕上使用Firefox(Firebug wins)测试我的项目,然后在visual studio中编辑另一个。由于我的项目有一个会话系统,我希望能够在不必重新登录系统的情况下进行开发。

由于

编辑: Visual Studio 2008 Professional,内置IIS开发服务器。 Windows Vista Business 64位

3 个答案:

答案 0 :(得分:2)

我不认为这是可能的,因为应用程序在每个构建上重新启动。你可以做的是,在登录页面添加一个临时的jQuery post调用,它将在启动时运行。

$(function() {
    $.post('/login/', { username: 'phil', password: 'noonewillguessthis' });
});

这样,每次页面加载时,您都会“自动”登录系统。只需记住在部署live ...;)之前将其删除

答案 1 :(得分:1)

当您重建和更改库的内容时,不可能将它们重新加载到进程空间中。但是,在.Net中,您永远不能从加载后从AppDomain中删除程序集。要重新加载库,需要再次卸载和加载AppDomain。此外,如果您的web.config有任何更改,它还将卸载/重新加载您的AppDomain。

您可以使用诸如将会话状态推送到SQL服务器之类的内容,以便AppDomain回收不会对您产生影响。您可以使用web.config文件的sessionState元素执行此操作。

答案 2 :(得分:0)

我遇到了同样的问题。我在机器上使用VS 2015。我重建/构建项目,在我的第一次调试时,第一个生成的会话丢失了。我想提一下2页的项目。第一页是“ Default.aspx ”,第二页是“ Home.aspx ”。

  1. 首先加载Default.aspx页面
  2. 会话[“UserID”] 在Default.aspx上生成
  3. 使用Response.Redirect(“Home.aspx”,false)代码将页面重定向到Home.aspx。
  4. 会话[“UserID”] 在Home.aspx.cs的Page_Load函数中检查(如果它是否存在)
  5. 会话[“UserID”] 不存在..丢失!
  6. 解决方案:

    我在其他机器上安装了Visual Studio,并在该机器上构建了该项目。结果会话缺失问题得以解决。发布在服务器上运行良好。也许这个问题是由Visual Studio配置或机器配置提供的,我不确定但安装VS可能会解决问题。