본문 바로가기

Programming/Asp.Net MVC

How to increase max json length for ASP.Net MVC Error Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property. 파일 업로드를 angularJs의 base64 uploader를 이용했더니, 파일 용량이 크거나, 한 번에 전송하는 파일 개수가 많아지는 경우 위와 같은 오류 메시지를 받았습니다. ASP.Net MVC의 Default max json length는 100K이며, 이를 넘기는 경우 요청이 MVC API, Action 께 도달하지 않고, 500 http status code가 반환됩니다. (즉, 요청이 contro.. 더보기
Automatically convert viewmodel properties to camel case. .NET conversion은 Pascal case 인데 반해, Javascript 는 대체적으로 camel case이다 보니 script 작업 간 어색하게 느껴질 때가 많았습니다. 물론 기술적인 이슈가 발생하는 것은 아닙니다만,간단한 처리를 통해서 친숙한 형태의 JSON data를 만드는 방법이 있어 공유합니다. 이를 위해서는 Newtonsoft 의 Nuget 이 필요합니다. Package manager 를 통해서 다음을 설치합니다.Install-Package Newtonsoft.Json 이후 App_Start 폴더의 WebApiConfig 파일에 아래의 내용을 추가합니다. (6, 7 line) public static void Register(HttpConfiguration config) { conf.. 더보기
Web cache ASP.NET WebApi2를 처음으로 써봤습니다. 그 간결함에 '우오우오~' 이렇게 놀라게 되네요 :) 서비스 자체는 간단한데, 서버에 부하가 좀 있는 기능이라서 cache를 적용하려고 알아보다가 CacheOutput라는 Nuget을 알게되었습니다. Scott Hanselman이 극찬을 했네요 :) Server 뿐 아니라, Client 에도 cache을 적용합니다. 이는 HTTP Header에 ETag 및 Last-Modified 값을 통해서 행해집니다. Package Manager를 통해서 손쉽게 install합니다. Install -Package Startweb.CacheOutput.WebApi2 그리고 서비스의 Attribute를 다음과 같이 달아주면 끝입니다. :) [CacheOutput(Cli.. 더보기
ASP.NET vNext ASP.NET vNext가 Windows10과 함께 공개될 것 같습니다. (그러니까 내년이네요...) 개인적으로 눈에 띄는 것을 살펴보면 MVC 6라는 단일 프레임워크로 MVC, Web API, Web Pages가 합쳐졌고,IIS가 아닌 환경에서도 호스팅이 되고,DI(Dependency Injection)이 내장되었고,가벼워졌고,하위 호환은 되지 않습니다.(MS가 6 version의 하위호환을 버리다니!!) taeyo site에서 MVC5 한글 번역서를 출간할 예정인데... Referenceshttp://www.asp.net/vnext/overview/aspnet-vnext/getting-started-with-aspnet-vnext-and-visual-studiohttp://taeyo.net/Colum.. 더보기
Dynamic resource file handling 동적으로 resx 파일을 수정하는 기능이 있다면 어떤 점을 주의해야 할까요?ASP.Net에서는 Top-level item에 대한 종속성이 변경되는 경우에, re-compile합니다.따라서, 관리되는 resx 파일이 갱신된다면, re-compile로 인한 서비스의 지연이 발생합니다. 이 경우 resx 파일을 안쓰는 게 낫겠네요... Test 결과 (local) 더보기
ActionFilter Action filter의 동작권한이 없는 경우 권한이 있는 경우 Action filter 구현권한을 위한 AuthorizeAttribute를 상속하여, filtering 합니다. public class CustomAuthorizationAttribute : AuthorizeAttribute{ public CustomAuthorizationAttribute() { } protected override bool AuthorizeCore(HttpContextBase httpContext) AuthorizeCore에서 custom logic을 적용합니다.권한이 없어 false를 반환하는 경우, login page로 redirection합니다.UnautorizeException 등을 발생하는 것을 Applica.. 더보기
How to migrate Asp.Net MVC MVC introduce for each version 더보기
Web.config - How to config max upload file size httpRuntime의 maxRequestLength를 설정함으로써 변경할 수 있습니다. Referencehttp://support.microsoft.com/kb/815307/ko 더보기