2013-10-06 1 views
2

데이터베이스에서 개체를 삭제하려고합니다. 나는 UI 레이어와 서비스 레이어를 가지고 있는데 UI와 서비스를 IIS에 개별적으로로드했다. asp.net 웹 API를 사용하고 있으며 HTTP (http5)를 사용하여 요청을 보낸다. http:// localhost:15957/에게 삭제 요청을 보내면 모든 것이 정상입니다. 하지만 난 IIS에서 호스트가이 오류를 얻을 사이트에 요청을 보낼 때 :localhost에서 메서드를 삭제해도 작동하지만 IIS에서 작동하지 않습니다. 웹 API

HTTP Error 405.0 - Method Not Allowed 

내가 응답 헤더보고를하고 그리고 예상치 못한 헤더 참조 :

Allow:GET, HEAD, OPTIONS, TRACE 

내가이 헤더를 추가 해달라고을 .

<customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type, x-xsrf-token" /> 
     <add name="Access-Control-Allow-Methods" value="PUT, GET, POST, DELETE" /> 
</customHeaders> 

내 문제가 무엇입니까 : 나는 CORS의 헤더에 다음과 같은 추가 해요 서비스 계층의 Web.config에

?

+0

이 스레드에서 해결책을 찾으십시오. http://stackoverflow.com/questions/6739124/iis-7-5-enable-put-and-delete-for-restful-service-extensionless –

+0

시도해보십시오. 작동하지 않았습니다. IIS에서 webDav를 제거한 후에도 여전히 작동하지 않습니다! –

답변

1

IIS에서 처리기 매핑은 기본적으로 GET, HEAD, OPTIONS, TRACE를 허용하도록 설정되었을뿐입니다.

IIS로 이동하여 사이트의 처리기 매핑 (ExtensionlessURLHandler ....로 시작하는 것 중 하나임)으로 이동 한 다음 마우스 오른쪽 단추를 클릭 한 다음 편집을 클릭하고 요청 제한 단추를 클릭하고 동사 탭으로 이동하십시오. 그런 다음 필요한 추가 동사를 추가하거나 모든 동사를 선택할 수 있습니다.

web.config에서도이 기능을 구성 할 수 있어야하지만 항상 IIS에서 수행했습니다.

1

IIS web.config 파일을 업데이트하여 필요한 모든 것을 허용하십시오. 필요한 것들이 지정되어 있는지 확인하십시오.

<system.webServer> 
    <handlers> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0"/> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0"/> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> 
    </handlers> 
</system.webServer> 
관련 문제