2009-09-04 2 views
1

세션을 계속 유지할 수있는 방법이 있는지 알고 싶습니다.Visual Studio 재구성 간의 세션 유지 등

내 프로젝트에서 너무 많이 변경되거나 SVN (VisualSVN을 통한 거북이)에 코드를 제출하는 경우 빌드/빌드 사이에 세션을 잃어 버리는 것에 지쳤습니다. 나는 jQuery가 많은 ASP.NET MVC 프로젝트를 개발 중이다.

파이어 폭스 (Firebug WINS)로 한 화면에서 내 프로젝트를 테스트하고 다른 스튜디오에서 비주얼 스튜디오에서 편집 할 때이 작업을 수행하고 싶습니다. 내 프로젝트는 세션 시스템을 가지고 있으므로 시스템에 다시 로그인하지 않고도 개발할 수 있기를 원합니다.

감사

편집 : 비주얼 스튜디오 IIS의 개발 서버에서 빌드 2008 전문. Windows Vista Business 64bit

답변

1

라이브러리의 내용을 다시 작성하고 변경하면 해당 내용을 프로세스 공간으로 다시로드해야합니다. 그러나 .NET에서 AppDomain이로드 된 후에는 절대 어셈블리를 제거 할 수 없습니다. 라이브러리를 다시로드하려면 AppDomain을 언로드하고 다시로드해야합니다. 또한 web.config를 변경하면 AppDomain을 언로드하거나 다시로드합니다.

AppDomain 재활용이 영향을 미치지 않도록 SQL Server에 세션 상태를 푸시하는 것과 같은 것을 사용할 수 있습니다. web.config 파일의 sessionState 요소로이 작업을 수행 할 수 있습니다.

+0

SQL 서버에 대한 아이디어를 보내 주시면 감사하겠습니다.하지만 Tomas의 솔루션은 현재 작동합니다. – Phil

+0

이것은 실제로 더 잘 작동합니다. 그냥 JS 메서드에서 변경하고 다시 시작 사이의 응용 프로그램에서 내 자리를 잃지 마라! :) – Phil

+0

해결책을 찾고있는 다른 사람들을 위해 빠른 옵션으로 sessionState [mode = "StateServer"]를 확인하십시오. http://msdn.microsoft.com/en-us/library/ms178586.aspx – thebitguru

2

각 빌드에서 응용 프로그램이 다시 시작될 때 가능하다고 생각하지 않습니다. 당신이 할 수있는 일은 시작시 실행될 로그인 페이지에 임시 jQuery 포스트 콜을 추가하는 것입니다.

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

이렇게하면 페이지가로드 될 때마다 "자동"시스템에 로그온하게됩니다. 라이브를 배포하기 전에 제거하는 것을 잊지 마십시오.)

+0

작은 해킹을 수락해야합니다. 누군가가 덜 익숙하지 않은 접근법을 제공 할 수 있다면 대답으로 표시 할 것입니다.) – Phil

0

나는 동일한 문제에 직면 해있다. 나는 기계에서 VS 2015를 사용합니다. 다시 빌드/빌드 프로젝트 및 내 첫 번째 디버깅시 첫 번째 생성 된 세션이 손실됩니다. 두 페이지 프로젝트에 대해 언급 해 보겠습니다. 첫 번째 페이지는 "Default.aspx"이고, 두 번째 페이지는 "Home.aspx"입니다.

  1. Default.aspx 페이지는가 Default.aspx를 생성한다 [ "아이디"우선
  2. 세션로드
  3. 페이지 Response.Redirect를 ("Home.aspx를 사용하여 리디렉션된다 Home.aspx ", 거짓) 코드.
  4. 세션 [ "사용자 ID"]가 기존의 경우 Home.aspx.cs의를 Page_Load 함수에 확인되지 않았거나
  5. 세션 [ "사용자 ID"]은 .. 손실 존재하지!

솔루션 : 내가 다른 컴퓨터에서 Visual Studio를 instaled하고 내가 그 기계에서 프로젝트를 구축

. 결과 세션 누락 문제가 해결됨에 따라 게시는 서버에서도 잘 작동합니다. 어쩌면이 문제는 Visual Studio 구성 또는 컴퓨터 구성에 의해 제공됩니다. 확실하지는 않지만 VS를 설치하면 문제가 해결 될 수 있습니다.

관련 문제