2016/03/18

커널 덤프

# 프로세스별 스레드/핸들수 확인 (비정상적으로 많은 경우)

# C:\Program Files\Support Tools>poolmon.exe -b   (Windows 2003 Support Tool 필요)
    https://www.microsoft.com/en-us/download/details.aspx?id=15326
# findstr /M /L [Tag] *.sys

# ProcessExplorer - View - System Information - Paged Limit
   C:\Program Files\Debugging Tools for Windows (x86)\dbghelp.dll
   srv*C:\symbols*http://msdl.microsoft.com/download/symbols

# 커널덤프생성
   https://technet.microsoft.com/en-us/sysinternals/bb897415.aspx
   libekd.exe (windbg폴더복사) -> yes 위치 c:\symbols
   kd> .dump /f /o d:\memory.dmp

Debugging Tools for Windows (x86) version 6.12.2.633 
Debugging Tools for Windows (x64) version 6.12.2.633

# Symbol (Microsoft):
srv*C:\symbols*http://msdl.microsoft.com/download/symbols 

!vm  - 메모리 확인, NonPaged Pool Usage / NonPaged Pool Max
!poolused /t 5 2  - 비페이지풀 목록 확인
!poolused 2 -  Sorting by NonPaged Pool Consumed
!process 0 0  - 전페 프로세스 확인 TableSize 큰것
!process 884e6520 4  - 특정 프로세스 thread  확인

# windbg 명령어
http://blogs.msdn.com/b/willy-peter_schaub/archive/2009/11/27/common-windbg-commands-reference.aspx

 

 


2015/10/29

viewstate 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다

[오류현상]

페이지 내용을 POST Submit 처리를 할때 아래와 같은 오류가 발생 함.
--------------------------------------

예외 정보: System.Web.HttpException: 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.

[FormatException: 입력에 Base-64가 아닌 문자 또는 세 개 이상의 패딩 문자가 있거나 패딩 문자 사이에 잘못된 문자가 있기 때문에 입력이 유효한 Base-64 문자열이 아닙니다. ]
   System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) +14115992
   System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) +162
   System.Convert.FromBase64String(String s) +56
   System.Web.UI.ObjectStateFormatter.Deserialize(String inputString, Purpose purpose) +102
   System.Web.UI.Util.DeserializeWithAssert(IStateFormatter2 formatter, String serializedState, Purpose purpose) +67
   System.Web.UI.HiddenFieldPageStatePersister.Load() +200

[ViewStateException: viewstate가 잘못되었습니다.

[HttpException (0x80004005): 이 페이지의 상태 정보가 잘못되었으며 손상되었을 수 있습니다.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +157
   System.Web.UI.HiddenFieldPageStatePersister.Load() +12061437

 

[원인]

PostBack 으로 전송되는 페이지 Form 내용중에,. __VIEWSTATE 및  __EVENTVALIDATION 이 중복으로 있어서, 상태값이 유효하지 않기 때문으로 (서버에 ViewState 내용 input 항목이 2개 이상 전송) ,  페이지 내용에 ViewState 를 처리하는 Form 개체 태그가 인위적으로 삽입되지 않도록 처리를 할 필요가  있음.

   <input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/gSG .....
   <input id="__VIEWSTATEGENERATOR" ......
   <input id="__EVENTVALIDATION"  ......

   <input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/wEPD .....
   <input id="__VIEWSTATEGENERATOR" ......
   <input id="__EVENTVALIDATION"  ......

 

 

 


2015/09/11

IdentityModels 사용자 컬럼 추가

# IdentityModesl.cs

    public class ApplicationUser : IdentityUser
    {
          public string Comment { get; set; }   
    }

    및 IdentityUser 상속 받는 사용자 정의 DBModel (Table)

 

# Configuration.cs  기본값

 

 

PM> Enable-Migrations

PM> Add-Migration -ConfigurationTypeName  MyApp.Models.Configuration   MyDBModel
        --> 실행하면, Migrations 폴더에  일자_MyDBModel.cs  Migration 코드 파일이 생성됨
               생성된 파일에서, 컬럼 정의를 수정후

PM> Update-Database -ConfigurationTypeName  MyApp.Models.Configuration 
       --> Add-Migration 여러개가 생성된 경우, Update-Database –TargetMigration:"◯◯◯" 지정

 

발생할수 있는 오류 :  "More than one migrations configuration type was found in the assembly 'MyApp'. Specify the name of the one to use."

특정   ConfigurationTypeName  지정하는 이유는  Migrations 외 다른 위치에 Configuration 가 있는 경우에  어떤걸 사용할지 별도로 위치를 지정해줘야 하는 것 같음.

 

 


가장 많이 본 글