in-proc 세션 대신 State Server를 사용하도록 수정해야하는 초대형 ASP.NET 응용 프로그램을 상속 받았습니다. 응용 프로그램 전체에서 세션에 사용 된 모든 클래스를 추적하여 직렬화 할 수 있는지 확인해야합니다. 세션에서 사용되는 클래스를 결정하기 위해 코드를 분석하는 데 사용할 수있는 도구가 있습니까?ASP.NET에서 어떤 개체가 세션에 사용되는지 확인하십시오.
4
A
답변
1
쉽게 다음 (C#)를 사용하여 현재 세션 객체의 빠른 "스냅 샷"을 얻을 수있는 코드 :
BinaryFormatter b = new BinaryFormatter();
StringBuilder debug = new StringBuilder();
MemoryStream m;
foreach (String s in Session.Keys) {
// try to serialize the object
var obj = Session[s];
if (obj != null) {
m = new MemoryStream();
try {
b.Serialize(m, obj);
debug.AppendFormat("{0}: {1} bytes\n", s, m.Length);
}
catch (Exception ex) {
debug.AppendFormat("ERROR: {0}, Message: {1}\n", s, ex.Message);
}
}
}
그런 다음 당신의 마음에 드는 텍스트 컨테이너에서 "디버그"문자열을 표시합니다.
상태 관리자/SQL Server로 전환하면 실제로 직렬화 할 수없는 내용이 표시되지만 첫 번째 직렬화 불가능 개체에서 중지되기 때문에 유용합니다. 또한 어떤 키가 그 객체를 소유하고 있는지 알려주지 않습니다.
코드는 this Stackoverflow answer에서 변경되었습니다.
1
Visual Studio에서 와일드 카드 매핑을 사용하여 검색을 수행하고 Session [* =]과 같은 패턴을 검색 할 수 있습니다.
또 다른 하나는 직접 실행 창을 디버깅하는 동안 사이트를 탐색 한 후 세션 상태에있는 것을 요청하는 것입니다. 완전한 증거는 아니지만 이미 도움이 될 수 있습니다.
다른 기술은 세션 상태를 Sql 서버 또는 상태 관리자 모드 (out of process)로 설정하고 디버그하여 개체를 직렬화 할 수없는 경우 불평 시작 위치를 확인하는 것입니다. 동시에 응용 프로그램을 철저히 테스트했습니다.
관련 문제
- 1. 파일에 어떤 종류의 인코딩이 사용되는지 확인하십시오.
- 2. 어떤 체크섬이 사용되는지 찾기
- 3. 개체가 해제되었는지 확인하십시오.
- 4. 개체가 동일한 형식인지 확인하십시오.
- 5. 파일이 asp.net에서 사용되는지 여부를 알 수있는 방법
- 6. RAILS : "세션에 클래스 정의가없는 개체가 있습니다."
- 7. 어떤 계정 리소스에 액세스했는지 확인하십시오.
- 8. 어떤 수식에서 셀 (값)이 사용되는지 확인합니다.
- 9. 어떤 블루투스 프로파일이 통신에 사용되는지 확인하는 방법
- 10. 루비를 사용하여 어떤 키보드 레이아웃이 사용되는지 알아보십시오
- 11. 여기에 어떤 Javascript 라이브러리가 사용되는지 알고 싶습니다.
- 12. AppFabric 사용시 캐시 개체가 세션에 저장되는 이유는 무엇입니까?
- 13. master.dbo.sysprocesses의 어떤 열이 세션에 고유합니까?
- 14. PHP - 세션에 어떤 데이터를 포함시켜야합니까?
- 15. ASP.NET에서 모든 세션에 액세스 할 수 있습니까?
- 16. 라이브러리 및 실행 파일에 동일한 구성이 사용되는지 확인하십시오.
- 17. Sql Server 데이터베이스의 텍스트 필드에 특정 글꼴이 사용되는지 확인하십시오.
- 18. 어떤 포트가 사용되고 있는지 확인하십시오.
- 19. 어떤 클래스가 메서드를 호출했는지 확인하십시오.
- 20. 어떤 행에서 오류가 발생했는지 확인하십시오.
- 21. glibc가 사용되는지 확인하는 방법
- 22. MySQL : 어떤 설정 파일이 사용되는지 어떻게 알 수 있습니까?
- 23. TortoiseXXX : 특정 개발 프로젝트에서 어떤 SCM 소프트웨어가 사용되는지 파악
- 24. 종속성 워커는 모듈의 어떤 기능이 사용되는지 어떻게 알 수 있습니까?
- 25. RIA Services/EF Model이 어떤 이름으로 협회에 사용되는지 알려면 어떻게합니까?
- 26. 어떤 어댑터가 소켓 연결을 만드는 데 사용되는지 알고 있음
- 27. 어떤 JAXB 구현이 사용되는지 어떻게 알 수 있습니까?
- 28. PHP에서 어떤 포함 경로가 사용되는지 어떻게 알 수 있습니까?
- 29. ASP.NET에서 채팅 메시지의 발신자를 정확히 확인하십시오.
- 30. Asp.Net에서 리디렉션하기 전에 aspx 페이지가 있는지 확인하십시오.