I am really out of ideas and need some help. I am developing a web application with AngularJS as frontend language and a backend in C#.NET. All this is done in Visual Studio Express 2013 using a MS SQL database.
One of the functionalities is to upload (POST) a picture to the server. This worked well for the last three months but it stopped working somewhen yesterday or the day before (dont know exactly because I havent done tests on this functionality the last days). From one day to the other I am getting a "405 Method Not Allowed" when I am starting my project locally and try to upload a picture. The strange thing is, that I dont get this error on a different machine (my colleague does not get it). And even more surprising is, that another functionality (as well using POST) still works.
I thought in the direction of windows updates, IIS updates or Chrome/IE updates lately, but I cannot find a single hint of what is going on on my machine/with my project. I have reverted all my uncommited changes to see if it has to do with it, but it is not solving my problem.
Does anybody have an idea what I could search or check in order to get it working again? Any help would be really appreciated as I already lost about ten hours searching for the problem with no solution.
Does it have something to do with CORS even if the AJAX calls in AngularJS come from the same machine as the API is serving on. And why was it working the last three month without any problems?
Thanks in advance for your help. I currently dont know how to go on. - Sascha
Update 1: Request Headers:
POST http://localhost:49204/api/upload/ HTTP/1.1 Host: localhost:49204 Proxy-Connection: keep-alive Content-Length: 375232 Accept: application/json, text/plain, */* Origin: http://localhost:49204 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36 Authorization: bearer <omitted for brevity> Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryo14gICdV6HSLLxsg Referer: http://localhost:49204/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8
HTTP/1.1 405 Method Not Allowed Cache-Control: private Allow: GET, HEAD, OPTIONS, TRACE Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.0 X-SourceFiles: =?UTF-8?B?QzpcRGV2ZWxvcG1lbnRcUHJvamVjdHNcVmlzdWFsIFN0dWRpbyBFeHByZXNzXFdvcmtzcGFjZVxCZWxlZ21laXN0ZXJcQmVsZWdtZWlzdGVyXEV4cGVuc2VXZWJcYXBpXHVwbG9hZFw=?= X-Powered-By: ASP.NET Date: Tue, 21 Jan 2014 12:35:04 GMT Content-Length: 5456
Web.config (partially, default Web.config generated by VS2013)
<system.webServer> <handlers> <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> <defaultDocument> <files> <clear /> <add value="index.html" /> </files> </defaultDocument> </system.webServer>
after two days of investigation and research I solved the problem by completely re-setup my working environment. I have installed Visual Studio 2013 Express again and fetched a fresh copy of the source code from TFS. Now its working again.
The hint of @Ilan Frumer was quite useful. It guided me into the direction of searching for security/network configuration issues. I have compared the old environment and the new one and found out the "Enhanced Internet Explorer Security" was surprisingly turned on. I think it could have to do with a recent MS update as I have not turned it on manually. But thats just a guess. Switching it off did not help, so I have decided to re-install my environment.
@Ilan Frumer: Thanks again for your help! Really appreciate the time you have spent on it for me.
There is currently no discussion for this recipe.
This recipe can be found in it's original form on Stack Over Flow.