jueves, 15 de junio de 2017

405 method not allowed” for "PUT" method

Me encuentro desarrollando una aplicación #AngularJS que llama un API de .Net.
Todo iba bien hasta que mi "UPDATE" empezó a darme problemas, lo cual era bastante raro pues no recuerdo haber cambiado alguna configuración o similares. Dado que era un trabajo colaborativo hice mi respectivo "commit and push" para verificar si sólo me pasaba a mí así que procedí y en efecto, sólo me pasaba a mí;  <sarcasmo>¡Qué raro!</sarcasmo> 

Unos de mis compañeros lo corrió en su maquina y todo funcionaba bien pero dado que yo estaba desarrollando esa parte era necesario que arreglara mi asunto para continuar así que se nos ocurrió la idea de que usara su versión y eliminar la mía por si había algo en el código de las configuraciones mías que afectara, respaldé claro.

Una vez con la "nueva y correcta versión" hice las pruebas pertinentes pero no, no funcionó.
<sarcasmo>¡Qué sorpresa!</sarcasmo> 

Leyendo un poco supe que hay ciertas configuraciones que suelen afectar los verbos en la conexión, así que verifiqué las configuraciones del IIS pero en realidad no había mucho que activar o cambiar. Por lo poco que hice reincié con esperanza y al intentar de nuevo no funcionó sin embargo recordé que en el Web config puedes dar ciertas instrucciones para que tu aplicación evite o agregue "funcionamientos" que no debieran afectar otras aplicaciones. Por lo tanto, hice una búsqueda un tanto más especifica y me topé con esto:

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>
Santo remedio. Pude hacer un "PUT" sin novedad y así seguir con mis siguientes bugs, uno de los cuales eran los "undefined's".

Investigué un poco acerca del WebDAV y pude ver que es algo un tanto importante así que si no sabes del tema no estaría de más una vuelta por Wikipedia.

Solución: 

Agrega esas líneas a tus  Web configs y que la fuerza te acompañe. 

No hay comentarios:

Publicar un comentario