이 포스팅에서는 응용프로그램(WinForm, WPF...)에서 ASP.NET를 포함한 웹 서비스를 제공하는 방법을 다룹니다. 퍼블리싱된 파일을 서비스하는 것이 아닙니다. 웹서버를 구현한다고도 볼 수 있는데..... IIS나 Kestrel처럼 퍼블리싱된 파일을 읽어서 서비스하는 방식은 아닙니다. (그렇다고 구현방식이 다른 건 아닙니다 ㅎㅎㅎㅎ) 1. 프로젝트 생성 프로젝트는 ".Net 5 WinForm 애플리케이션"으로 생성합니다. 여기서는 "웹 응용 프로그램 MVC (모델-뷰-컨트롤러)"로 생성합니다. 'Form1'의 이름을 'MainForm'으로 바꿉니다. 폼을 다음과 같이 구성합니다. 버튼을 누르면 브라우저가 열리도록 코드를 넣습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ..
서버를 세팅하고 ASP.NET 5 웹을 올렸는데.... "405 Method Not Allowed" 오류가 납니다??? 1. 원인 찾기 다른대서 잘 돌아가고 있던 웹이라 무슨 일이지 하는데... WebDAV를 어떻게 해보라는 글이 보이네? 아뿔싸...... 평상시에는 제가 IIS를 세팅하니 까먹었는데..... 'WebDAV'가 설치되면 보안 문제 때문에 메소드(PUT, DELETE 같은 것들) 막히기도 합니다. 2. 'WebDAV' 제거하기 서버 관리자 > 역할 및 기능 제거 마법사 > 서버 역할 웹 서버 > 일반적인 HTTP 기능 > WebDAV 게시 기능을 제거해 주면 됩니다. 이제는 잘됩니다. 마무리 원한다면 웹사이트별로 세팅할 수는 있는데..... 보통 테스트용 서버와 실 서비스용을 나눠두기 때문..
외부에서 무언가를 테스트하는 경우 외부에서 접속하지 못해서 테스트가 힘든 경우가 있습니다. 프로그램에 따라서 손이 많이 가는 세팅을 해야 하는 경우도 있죠. 저 같은 경우 "ASP.NET Core"를 테스트할 때 이문제에 직면하죠 ㅎㅎㅎ (IISExpress, Kestrel 공통) 특히 모바일과 같은 다른 플랫폼을 디버깅 하고 싶을 때 많이 발생합니다. 이럴 때 사용하는 2차도 메인이나 임시 URL을 생성해주는 서비스가 "ngrok"입니다. 로컬 서버를 외부에 노출 시키기 - iisexpress-proxy 로컬 서버를 외부에 노출 시키기 - ngrok "ngrok"는 무료입니다. 유료 버전이 있긴 한데....제한 사항이 테스트하는 용도로는 없다싶이합니다. 1. 다운로드 및 실행 "ngrok" 사이트에 접..
ASP.NET Core에서 테스트를 돌리면 외부에서 접속이 불가능합니다. 이건 IISExpress, Kestrel 공통입니다. 좀 복잡하게 설정하는 방법이 있지만 엄청 귀찮습니다. 이럴 땐 외부로 플록시 해주는 프로그램을 사용해야 합니다. 이 포스팅에서는 "iisexpress-proxy"를 이용합니다. 로컬 서버를 외부에 노출 시키기 - iisexpress-proxy 로컬 서버를 외부에 노출 시키기 - ngrok 1. "iisexpress-proxy" 설치 "iisexpress-proxy"는 Node.js 기반 프로그램입니다. NPM이 설치돼있지 않다면 설치해 줍니다. 참고 : [Node.js] 윈도우에서 'Node.js'와 'NPM'을 설치하기 NPM 5.2.0버전 이상이면 모듈이 내장되어 있다고 합니..
NHN에서 옛날에 스마트 에디터라는 것을 공개한 적이 있는데....너무 옛날 꺼라 그냥 쓰기 안 좋아 쓴 적이 없습니다. 그런데 어느 날 보니 완전 다른 에디터를 공개했군요.심지어 마크다운과 위지웍을 동시에 지원!! 1. 간단하게 사용하기도큐먼트가 애매하게 친절해서 빌드 없이 쓰는게 힘들게 돼있어서 따로 정리합니다. 1-1. 참조 추가하기 - CSS"codemirror"에 CSS의존성이 있으므로 추가해야 합니다. 123cs 1-2. 참조 추가하기 - Javascript기능에 따라 필요한 것만 로드하면 되지만...... 귀찮으니 그냥 All버전 하나만 로드하면 됩니다. 12cs 1-3. 사용하기div로 영역을 지정하고 에디터를 생성해주면 화면에 짠 하고 나타납니다. (참고 : 설치와 기본기능 사용 ) 12..
닷넷 코어를 쓰고 나서부터........API결과는 'camelCase'로 온다고 느끼고 있었습니다. 이걸 'PascalCase'로 바꿔 봅시다. 1. 카멜케이스(camelCase)와 파스칼케이스(PascalCase) 코드 표기법에는 여러 가지가 있는데 그중 많이 쓰는 것이 카멜케이스(카멜표기법)와 파스칼케이스(파스칼표기법)입니다. 파스칼케이스는 단어를 대문자로 시작하고 붙여 씁니다. 예> PascalCase 카멜케이스는 파스칼케이스에 첫 대문자만 소문자로 표시합니다. 예> camelCase 2. C#에서는.... 그런데 C#의 네이밍 규칙의 기본은 파스칼케이스입니다. 그런데 API에서 모델을 결과로 전달하면 카멜케이스로 넘어옵니다. 3. 파스칼케이스로 바꾸기 필요한 부분만 바꾸는 방법과 전체를 기본 정..
가상디렉토리에 프로젝트를 만들어서 올렸더니 HTTP Error 500.0 - ANCM In-Process Handler Load Failure 1. 오류 상황이게 무조건 발생하는 것은 아니고 닷넷 코어 2.2이상을 사용 시 가상디랙토리 사용 시 특정 상황에서 발생합니다. 'InProcess'는 IIS 응용프로그램 풀에서 동작합니다.(참고 : Rick Strahl님 블로그 - ASP.NET Core In Process Hosting on IIS with ASP.NET Core )'InProcess'를 사용하고 있을때 'dotnet.exe'에서 사용하려고 하면 발생한다고 합니다. 일반적인 상황에서는 'InProcess'를 권장한다고 합니다. 2. 해결 방법간한 하게 'web.config'에서 'hosting..
빈 프로젝트로 세팅하는 이유 중에 하나가 'ASP.NET MVC'의 잡다한 코드가 설치되지 않게 하기 위해 서 입니다. 하지만 이제는 'WebAPI' 템플릿이 있어서 그냥 이거 써도 됩니다. 그래도 템플릿 없이 어떻게 구성해야 하는지 알아두면 좋겠죠? [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(2) - Ajax공통 기능, 데이터 바인드 처리[ASP.NE..
정상적으로 잘 배포되던 프로젝트인데 어느 날 갑자기 배포하고 나면 502.5에러가 납니다. 로컬은 여전히 잘됩니다. HTTP Error 502.5 - Process Failure 1. 자세한 오류 내용 확인 502 오류는 원래 서버가 잘못된 응답을 받았다는 의미입니다. 하지만 502가 나는 원인은 다양합니다. 해결방법도 엄청 많습니다. 문제는 원인을 모르면 결국 될 때까지 해봐야 한다는 것입니다. 그래서 서버의 이벤트 뷰어(event viewer)를 확인해 봤습니다. 이벤트 뷰어의 내용에서 중요한 건 "failed to start process with commandline 'dotnet" 이것뿐입니다. 'dotnet' 프로세스를 시작하는 것이 실패했다고 합니다. 왜? 도대체 왜? 이 에러는 보통 권한이..
ASP닷넷 코어(ASP.NET Core)로 빈 프로젝트를 생성한 다음 프로젝트를 실행하면 다음과 같이 화면이 나옵니다. 이것은 ASP.NET이나 HTML 페이지가 아니고 프로그램에서 생성된 메시지입니다. 하지만 우리가 빈 프로젝트로 생성한 이유는 HTML 파일을 표시하기 위해서죠. 그럼 이제부터 HTML 페이지를 열기 위해서 세팅을 해봅시다. [ASP.NET Core] 빈 프로젝트 세팅 (1) - 'index.html'을 시작페이지로 설정하기[ASP.NET Core] 빈 프로젝트 세팅 (2) - WebAPI 설정 [ASP.NET Core] .NET Core로 구현한 SPA(Single Page Applications)(1) - 기초[ASP.NET Core] .NET Core로 구현한 SPA(Single ..