재우니의 블로그

 

오류 요약

HTTP 오류 405.0 - Method Not Allowed

잘못된 메서드(HTTP 동사)가 사용되고 있으므로 지금 찾고 있는 페이지를 표시할 수 없습니다.

자세한 오류 정보
모듈 WebDAVModule
알림 MapRequestHandler
처리기 ExtensionlessUrlHandler-Integrated-4.0
오류 코드 0x00000000
요청한 URL http://localhost:80/api/StudentsApi/70
실제 경로 D:\test\NgWebApiGrid-master\NgWebApiGrid.Web\api\StudentsApi\70
로그온 방법 ApplicationCookie
로그온 사용자 shimpark@gmail.com
 
가능성이 높은 원인:
  • 요청 처리 모듈에서 허용되지 않는 HTTP 동사가 웹 서버에 보낸 요청에서 사용되었습니다.
  • 잘못된 HTTP 동사가 포함된 요청이 서버에 전송되었습니다.
  • 요청이 정적 콘텐츠를 위한 것이며 GET 또는 HEAD 이외의 HTTP 동사를 포함하고 있습니다.
  • HTTP 동사 POST를 사용하여 가상 디렉터리에 요청이 전송되었으며 기본 문서는 GET 또는 HEAD 이외의 HTTP 동사를 지원하지 않는 정적 파일입니다.
가능한 해결 방법:
  • 이 요청이 전송되는 모듈 처리기에서 사용할 수 있는 동사 목록을 검사하여 이 동사가 해당 웹 사이트에서 허용되는지 확인하십시오.
  • IIS 로그 파일에서 요청에 허용되지 않는 동사를 확인하십시오.
  • 실패한 요청에서 이 HTTP 상태 코드를 추적하는 추적 규칙을 만드십시오. 실패한 요청에 대한 추적 규칙을 만드는 방법을 자세하게 보려면 여기를 클릭하십시오.
링크 및 추가 정보이 오류는 요청 처리 모듈의 처리기에서 허용하지 않는 HTTP 동사가 웹 서버에 전송된 요청에 들어 있다는 것을 의미합니다.

기타 정보 보기 »

 

 

위의 원인을 찾을라고 여기저기 검색을 해봤는데,,

 

http://blog.naver.com/kakelo/130151536940

http://stackoverflow.com/questions/23293782/mvc-web-api-405-method-not-allowed

 

 

<modules>
	<remove name="FormsAuthentication" />
	<remove name="WebDAVModule" />
</modules>

 

 

우선 내가 작업하는 환경은 Visual Studio 2015 이며, asp.net mvc 와 web api 를 사용하고 있다.

여기 web api 에는 알다시피 put, delete, post, get 를 통해 처리하는데, 이런 동작을 iis 7 에서는 인지를  못하는 현상이다.

아래는 iis 의 응용프로그램풀 환경에서 v4.0 이며 통합을 사용하여 가동한 상태이다.

 

여전히 작동되지 않았다. 아마 web.config 와 iis 가 연결되지 않았나 해서 다시 확인해 봤다.

보니... 미 사용이 안되고 있다. 제거가 필요 해 보인다. 가감히 WebDAV 를 IIS 의 처리기 매핑에서 삭제를 했다.

 

 

 

 

이상하게도.. WEB.CONFIG 가 변경이 일어나는 것이었다. 그래서 열어봤다.

뭔지 모르지만, 많이도 remove 를 하고,마지막에 pool 을 통합을 해서 그런지 설정값이 필요했다.

이제 작동이 잘된다.~~ 

 

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <remove name="WebDAVModule" />
    </modules>

    <handlers>
      <remove name="WebDAV" />      
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>