2012-09-05 2 views
9

MVC 4 응용 프로그램에서 PUT을 사용하려고하는데 405 오류가 발생합니다. 내 라우팅에서MVC 4. IIS 7.5 PUT returns 405

내가 PUT 및 POST를 허용하는 경로에 제약 조건이, 엔드 포인트가 작동 POST에, PUT 내가 여기에 여기에 조언 ASP.NET Web API returns 404 for PUT only on some serversASP.NET MVC got 405 error on HTTP DELETE request?

을 따랐습니다 (405)

실패

IIS에서 WeDAV도 삭제했지만 여전히 405를 얻고 있습니다. 다른 제안이 있습니까?

나는 또한이 충고 ASP.NET Web API - PUT & DELETE Verbs Not Allowed - IIS 8 여전히 운이 따랐습니다 그것을 위해, (비주얼 스튜디오 2012) IIS 8에 정확히 같은 문제에 봉착

답변

1

나는 WebAPI를 사용하고 위에 말했듯 WebAPI는 어떤 방법으로 동사가 매핑되는지 '까다로운'것으로 보인다. 나는 예상대로 HttpPut, Get, Delete 및 Post 속성을 적절한 메소드에 추가하여 라우팅이 작동하도록해야만했다.

25

모든 사람에게 영향을 줄 수 있으므로 호스팅 제공 업체가 WebDAV를 제거 할 수 없습니다.

이것은 runAllManagedModulesForAllRequests = "true"이고 작동했지만 권장되지 않았습니다.

WebDAVModule 용 모듈을 제거했지만 여전히 작동하지 않는 많은 수정이 포함되었습니다. 핸들러도 제거 했으므로 마침내 POST PET DELETE라는 동사를 사용할 수 있습니다.

모듈 및 처리기에서 WebDAVModule 및 WebDAV를 제거하십시오. 에 ... IIS에서 내 사이트를 클릭하면 내 2 센트 퍼팅

<modules> 
    <remove name="WebDAVModule" /> 
</modules> 
<handlers> 
    <remove name="WebDAV" /> 
</handlers> 
+1

내 웹. config에는 이미 runAllManagedModulesForAllRequests = "true"가 있습니다. 위의 WebDAV 제거 라인을 추가하면 큰 도움이되었습니다. – Jbecwar

+0

나는 이미이 작업을 수행했다고 생각했지만 모듈이 아닌 핸들러 만 제거했습니다. 감사! –

+0

나를 위해 작동합니다. +1 –

0

'IIS'에서 마지막 항목으로 '의 WebDAV 제작 규칙'을 보여 주었다. 두 번 클릭하면 'WebDAV 기능이 사용 중지되었습니다.'라는 메시지가 나타납니다. 오른쪽에 경고가 표시되고 'Enable WebDAV'에 대한 링크가 있지만 여전히 작동하지 않습니다. 나는 Stanomatic의 제안은 위의 핸들러 부분은 중요하지 않았다 다음, 내 모듈은 다음과 같이 보았다 :

<modules runAllManagedModulesForAllRequests="true" /> 

난 그냥 그 안에 제거를 추가하고 내 문제 해결 :

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule" /> 
</modules>