IT Share you

IHttpActionResult 형식 또는 네임 스페이스를 찾을 수 없습니다.

shareyou 2020. 12. 13. 11:24
반응형

IHttpActionResult 형식 또는 네임 스페이스를 찾을 수 없습니다.


ASP.NET MVC4에서 웹 API 응용 프로그램을 만드는 것은 이번이 처음입니다. 새 Web API 프로젝트를 열고 'Product'라는 새 컨트롤러를 추가했습니다. 아래 주어진 함수는 오류 네임 스페이스를 찾을 수 없음을 보여줍니다.

public IHttpActionResult GetProduct(int id) 
{
    var product = products.FirstOrDefault((p) => p.Id == id);
    if (product == null)
    {
        return NotFound();
    }
    return Ok(product);
 }

누구든지이 문제를 해결하도록 도와 줄 수 있습니까?


Asp.Net 4.0을 사용하고 있으므로 네임 스페이스 System.Web.Http 버전 4.0에서는 IHttpActionResult를 사용할 수 없으므로 네임 스페이스를 버전 5.0.0.0으로 업데이트해야합니다. 참조에서 System.Web.Http 네임 스페이스를 마우스 오른쪽 단추로 클릭하고 속성으로 이동하여 네임 스페이스 버전을 확인할 수 있습니다. 솔루션 프로젝트-> 솔루션에 대한 NuGet 패키지 관리-> Asp.Net WebAPI 2 검색-> Asp.Net WebAPI 2를 선택하고 관리를 클릭하여 업데이트 할 수 있습니다. 또한 업데이트 탭에서 사용 가능한지 확인할 수 있으며 업데이트 탭에서 사용 가능한 경우 거기에서 업데이트 할 수 있습니다. 그런 다음 참조에서 System.Web.Http 네임 스페이스의 속성으로 이동하여 버전을 확인합니다.

이것은 저에게 효과적이며 희망은 당신에게도 효과가 있습니다.

감사


소스 제어에서 프로젝트를 체크 아웃 할 때 비슷한 문제가 발생했습니다.

프로젝트에 Microsoft ASP.NET Web API 2에 대한 참조가 있지만 여전히 프로젝트를 컴파일 할 수 없습니다.

해결책은 패키지 관리자 콘솔을 사용하여 패키지를 다시 설치하는 것입니다.

PM> update-Package Microsoft.AspNet.WebApi –reinstall


IHttpActionResult 참조 오류를 해결하려면 NuGet을 사용하여 참조를 추가하여 Web API2 Core lib를 설치합니다. dll

참조의 솔루션 탐색기에서 마우스 오른쪽 단추를 클릭하고 너겟 패키지 관리를 선택하십시오. (없으면 너겟 설치)

왼쪽의 NuGet 패키지 관리 창에서 온라인을 클릭 한 다음 오른쪽 상단에서 API 2.1을 검색하고 Microsoft ASP.NET Web API 2.1 Core Libraries를 설치합니다. (설치 후 설치 버튼이 녹색 체크로 변경됩니다)

여기에 이미지 설명 입력

그 후 프로젝트가 다시로드되고 다시 빌드 될 때 IHttpActionResult 참조 오류가 해결되고 프로젝트가 성공적으로 빌드됩니다. 귀하의 질문은 좋았고 저를 도왔습니다. 이 답변이 도움이 되었기를 바랍니다.


IHttpActionResult 및 모두에 대한 네임 스페이스를 얻으려면이 링크를 확인하십시오 .

이 패키지에는 IIS에서 ASP.NET Web API를 호스팅하는 데 필요한 모든 것이 포함되어 있습니다. ASP.NET Web API는 브라우저 및 모바일 장치를 포함하여 광범위한 클라이언트에 도달하는 HTTP 서비스를 쉽게 구축 할 수있는 프레임 워크입니다. ASP.NET Web API는 .NET Framework에서 RESTful 애플리케이션을 빌드하는 데 이상적인 플랫폼입니다.

Microsoft ASP.NET Web API 2를 설치하려면 패키지 관리자 콘솔에서 다음 명령을 실행하거나 NuGet 패키지 관리

PM> Install-Package Microsoft.AspNet.WebApi-버전 5.0.0


비슷한 문제가 있었고 다시 설치하면이 문제가 해결됩니다. Visual Studio 2013에서 도구> NuGet 패키지 관리자> 패키지 관리자 콘솔로 이동하여 다음을 적어두면됩니다.

PM> update-Package Microsoft.AspNet.WebApi –reinstall

그런 다음 솔루션을 정리하고 솔루션을 빌드 / 다시 빌드합니다.

참고 : 제 경우에는 프로세스가 Web.config 및 packages.config 파일을 명시 적으로 체크 아웃하고 System.Web.Http dll 파일도 제거했습니다.


이 솔루션은 저에게 효과적 이었습니다.
도구 –> 라이브러리 패키지 관리자-> 패키지 관리자 콘솔을 클릭 한 다음 다음을 입력합니다.
Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
update-Package Microsoft.AspNet.WebApi –reinstall
Reference : http : // blog.bitlinkit.com/type-namespace-ihttpactionresult-not-found/


사용하려는 기능은 Web API 2의 일부입니다. MVC 4를 사용하고 있다고 언급 했으므로 참조를 MVC 5 및 Web API 2로 업그레이드하고 싶을 것입니다.

이러한 기능에 대한 자세한 내용은 http://www.strathweb.com/2013/06/ihttpactionresult-new-way-of-creating-responses-in-asp-net-web-api-2/참조하십시오.


NuGet을 사용하여 Web API2 Core lib를 설치합니다. dll. API2의 일부 구성 요소가 이전 Nuget 패키지와 호환되지 않기 때문에 Web API2를 설치하기 전에 Nuget을 업데이트해야 할 수 있습니다. 나는 이렇게했고 문제가 해결되었다.


제 경우에는 System.Web.Http5.0.0.0 버전으로 업데이트 한 후이 문제를 해결하기 위해 IDE를 다시 시작해야했습니다.


이 문제는 Visual Studio 2015를 사용하기 시작한 최근 2 개의 프로젝트에서 발생하는 것 같습니다. Project는 mvc 및 웹 API 구성 요소가있는 ASP.Net MVC 5 웹 사이트입니다. 업데이트를 실행하고 원치 않는 너겟 패키지를 정리 한 후 다른 유사한 프로젝트에서 일부 상용구 코드를 복사했고 IHttpActionResult 및 RouteAttribute를 찾을 수없는 동일한 문제가 발생했습니다.

이 문제는 프로젝트 참조에 참조 된 System.Web.Http.dll의 잘못된 버전으로 인해 발생했습니다. 기본적으로 어셈블리의 시스템 GAC 버전이 사용됩니다.

이 문제를 해결하려면이 참조를 제거하고 Nuget 패키지 폴더의 동일한 어셈블리에 대한 참조를 추가하면됩니다. [프로젝트 폴더] \ packages \ Microsoft.AspNet.WebApi.Core.5.2.3 \ lib \ net45 \ System.Web.Http .dll

먼저 필요한 버전의 Microsoft.AspNet.WebApi.Core nuget 패키지로 업데이트했는지 확인해야합니다.

참고 URL : https://stackoverflow.com/questions/19853196/the-type-or-namespace-ihttpactionresult-not-found

반응형