본문 바로가기

개발일지

Visual Studio 2015의 .NET Framework 4 용 ASP.NET Web API

728x90

.NET Framework4 에서 웹서비스를 구현해야 하는 일이 생겼다. 대략 난감한 일이 벌어졌는데...

아래 사이트에서 해답을 찾았음. .NET Framework4.5 이상 부터는 큰 문제가 없지만 .NET Framework4에서는 그리고 Visual Studio 2015에서 해결을 해야 하니 막막했는데 큰 도움이 되어 나도 실습한 내용을 다시 복습하는 차원에서 정리합니다.

https://david.gardiner.net.au/2015/08/aspnet-web-api-for-net-framework-4-in.html

 

ASP.NET Web API for .NET Framework 4 in Visual Studio 2015

This is a pretty unique set of constraints I know – sometimes there are limitations outside your control as to which version of .NET you (or those who will be running your software) can use.

david.gardiner.net.au

.NET Framework 4.0에서 작동하는 최신 버전의 Web API는 4.0.30506.0입니다 (5.x 릴리스에는 모두 .NET 4.5 이상 필요).

  1. Visual Studio 2015 열기
  2. 새 프로젝트 만들기 (프레임 워크 드롭 다운 목록에서 .NET Framework 4를 선택해야 함) 
  3. 패키지 관리자 콘솔 열기
  4. 시작하다 Install-Package -Id Microsoft.AspNet.WebApi -Version 4.0.30506 -DependencyVersion HighestMinor
  5. Update-Package Newtonsoft.Json
  6. (선택 과목) Install-Package -Id Microsoft.AspNet.WebApi.Tracing -Version 4.0.30506
  7. App_Start폴더 추가
  8. 이 폴더 안에 새 클래스 추가 WebApiConfig
  9. WebApiConfig 클래스에 다음 콘텐츠를 추가합니다.
public static void Register(HttpConfiguration config)
{
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new
        {
            id = RouteParameter.Optional
        }
    );

    // Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
    // To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
    // For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
    //config.EnableQuerySupport();

    // To disable tracing in your application, please comment out or remove the following line of code
    // For more information, refer to: http://www.asp.net/web-api
    config.EnableSystemDiagnosticsTracing();
}
  1. 프로젝트의 최상위 수준에서 Global.asax 파일을 추가 합니다.
  2. Global.asax.cs파일을 열고 다음 방법을 추가하십시오.
protected void Application_Start()
{
    WebApiConfig.Register(GlobalConfiguration.Configuration);
}
  1. 컨트롤러 폴더 추가
  2. Controllers 폴더 안에 새 클래스 (예 : ValuesController)를 추가합니다.
  3. ValuesController 클래스를 다음과 같이 업데이트합니다.
public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/values/5
    public void Delete(int id)
    {
    }
}

 

이제 실습한 내용의 화면 정리 입니다.

1. 프로젝트 생성

2. NuGet 패키지 설치

그런데 여러 프로젝트가 같이 있는경우 특정 프로젝트에 설치를 해야 되는 경우가 발생하는데... 이건 아래 사이트를 참고 함

https://docs.microsoft.com/ko-kr/nuget/consume-packages/install-use-packages-powershell

 

Visual Studio에서 콘솔을 사용하여 NuGet 패키지 설치 및 관리

패키지 작업을 위해 Visual Studio에서 NuGet 패키지 관리자 콘솔을 사용하는 방법에 대한 지침입니다.

docs.microsoft.com

Global.asax 생성 화면

프로젝트 솔루션 탐색기 화면 캡쳐

프로그램 실행 후 웹서비스 실행 결과 화면 캡쳐

728x90