ASP.NET
-
[.NET] IServiceCollection기반 서비스에 args 값 의존성 주입(DI) 간단히 처리하기.NET/개념 및 유용한 팁 2022. 8. 3. 22:03
간혹 콘솔프로그램의 args를 IServiceCollection 및 Builder로 구성된 ASP.NET Core 및 Worker 에 그대로 의존성 주입하고 싶을때가 있다. 방법은 간단한다. AddSingleton(args); 한줄이면 끝난다. 아래코드는 .NET 6기반의 ASP.NET Core WebApi 프로젝트이다. [Program.cs] var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuc..
-
[ASP.NET Core] 세상 간편해진 Video/Audio Streaming.NET/ASP.NET Core 2021. 4. 21. 22:36
예전에 개선된 다운로드 예제를 작성하면서 확인하게된 EnableRangeProcessing 옵션을 테스트해보고자 코드 몇 줄 끄적였다. true로 설정한 채 mp4, mp3 같은 미디어 파일을 반환하면 자동으로 스트리밍 처리가 된다는 것이다. 테스트를 위해 mvc프로젝트를 생성하고 간단한 StreamingController 를 생성해보았다. StreamingController.cs using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace StreamingEx..
-
[ASP.NET Core] 개선된 다운로드 예제(feat. ASP.NET을 쓰지 말아야할 이유 1 Stack 추가).NET/ASP.NET Core 2021. 4. 15. 23:02
예전에 ASP.NET Core로 일반적인 파일 다운로드 기능 구현 예제를 만든적이 있었다. (ddochea.tistory.com/76) 해당 예제에선 파일을 다운로드할 때 byte[] 버퍼에 담아 전달하도록 작성했었는데, 그 이유는 크기가 큰 파일을 전달할때 생기는 메모리 사용 문제점, 그리고 이를 해결하기위한 스트리밍 방법인 "HTTP range requests" 예제를 구현하고 비교하는 포스트를 작성하기 위한 일종의 큰 그림(?) 이었다. "HTTP range requests"에 관한 정보는 아래 링크에서 확인할 수 있다. developer.mozilla.org/ko/docs/Web/HTTP/Range_requests HTTP range requests - HTTP | MDN HTTP range re..
-
[ASP.NET Core] HTTP Cache-Control Header 를 이용한 Get 응답(Response) 캐싱 및 파일 다운로드 예제.NET/ASP.NET Core 2021. 4. 12. 22:34
운영중인 웹 서비스에 대한 수정요청이 있어 작업하던 도중 파일 다운로드기능에 캐싱이 필요하여 응답 캐싱이 가능하도록 작업했다. 사실 사용자 수가 많지 않은 내부서비스라 딱히 적용안해도 되긴 하지만 돈(?) 안되는 트래픽은 줄일 수 있으면 줄이는 습관을 가지는게 좋은지라 적용했다. 적용자체도 그리 어렵지 않다. 1. Startup.cs에 AddResponseCaching() 및 UseResponseCaching() 적용 Startup.cs 에 services.AddResponseCaching()과 app.UseResponseCaching() 함수를 이용하여 캐싱 기능을 적용한다. using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting;..
-
[VSCode] WSL Ubuntu에서 ASP.NET Core 개발환경 세팅.NET/개발환경 및 Tools 2021. 2. 21. 13:41
재미삼아 WSL Ubuntu 기반에 .NET 개발환경을 구축해보았다. 1. .NET 설치 WSL Ubuntu 에서 .NET을 설치한다. 설치는 .MS 공식문서에 잘 나와있다. docs.microsoft.com/ko-kr/dotnet/core/install/linux-ubuntu#2004- Ubuntu에 .NET 설치 - .NET Ubuntu에 .NET SDK 및 .NET 런타임을 설치하는 다양한 방법을 보여 줍니다. docs.microsoft.com 설치가 완료되면 dotnet --version 명령어로 확인할 수 있다. 2. ASP.NET 프로젝트 생성 명령어로 ASP.NET 프로젝트를 생성한다. 예시의 명령어는 react를 웹 클라이언트 프로젝트가 포함된 webAPI 생성 명령어이다. 프로젝트는 "A..
-
[IIS] IIS는 URL인코딩에서 "+" 와 공란을 구분하지 못한다.서버 관리/Windows 2021. 1. 16. 00:06
웹 개발을 하는사람들은 한번쯤 고생해보는 통과의례가 있다. URL인코딩. 문자열을 %코드로 바꾸기 때문에 퍼센트인코딩이라고도 불린다. https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%84%BC%ED%8A%B8_%EC%9D%B8%EC%BD%94%EB%94%A9 퍼센트 인코딩 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 퍼센트 인코딩(percent-encoding)은 URL에 문자를 표현하는 문자 인코딩 방법이다. 이 방법에 따르면 알파벳이나 숫자 등 몇몇 문자를 제외한 값은 옥텟 단위로 묶어 ko.wikipedia.org 웹 통신은 크게 GET, POST 2가지가 존재한다. PUT, DELETE, PATCH도 있긴하지만 데이터를 URL을 통해 통신하는가..
-
[ASP.NET Core] 배포환경에서 File Download 기능에 An unhandled exception has occurred while executing the request. 오류 발생하는 현상.NET/개념 및 유용한 팁 2021. 1. 15. 22:49
IIS에서 배포한 웹서비스에서 파일을 다운로드하는 기능이 "An unhandled exception has occurred while executing the request." 오류메시지만을 띄운 채 동작하지 않는 문제가 있었다. 개발PC의 IIS, 개발PC의 Kestrel, 배포환경의 Kestrel 모두 다운로드가 정상동작했지만, 배포환경에서의 IIS만 다운로드 기능이 동작하지 않았다. 이전에 작성했던 상세오류를 보는 방법을 통해 원인을 찾으려 했지만, 뭐가 문제인지 Development로 실행시키면 동작하지 않는 문제가 있었다. https://ddochea.tistory.com/73 [ASP.NET Core] "An error occurred while starting the application."..
-
[ASP.NET Core] "An error occurred while starting the application." 떴을 때 상세 오류 확인방법.NET/개념 및 유용한 팁 2021. 1. 9. 11:28
ASP.NET Core 기반 웹서비스를 개발한 후, IIS에 올려 정식서비스 오픈을 준비중이었다. 그런데 Kestrel 과 개발PC 내 IIS 에선 정상동작하던 웹 서비스가 실제 구축할 서버에서는 아래와 같은 메시지가 떴다. "An error occurred while starting the application." Dotnet core 호스팅 번들을 다시설치해보고, 서버도 껐다 켜보고, Core SDK도 설치해봤지만 해결되지 않던 중 stackoverflow에서 아래와 같은 방법을 통해 원인을 찾아보는 방법을 알게되었다. 총 2가지를 수정해야 한다. Program.cs public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateD..