Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web API interface works locally but gets 404 after deployed to Azure Website

Tags:

I'm working on a ASP.NET MVC 4 website. Together with MVC controllers, I have one API controller which contains an ajax GET API interface. It works perfectly when debugged locally with visual studio.

However, after I deployed it as an Azure Website, MVC controllers work, but the API controller doesn't work anymore. When jQuery code tries to reach it, it returns a response like:

No HTTP resource was found that matches the request URI 'http://example.com'.

It looks like at least the route works (otherwise, another 404 response body is returned.).

Additionally, I have another pure MVC 4 Web API service deployed as an Azure Cloud Service. It works perfectly. Thus, I wonder what causes the API inside MVC Website to fail? Thank you!

like image 316
Felix Yao Avatar asked Nov 16 '12 14:11

Felix Yao


1 Answers

It is a common problem When an MVC application is deployed on IIS, the HTTP url which is calling the REST Service exposed by your web API will change. If your api controller is named MyApiController, so in production evironment, you should add the application name before the calling URL. That means that /api/MyApi will become /MyApp/api/MyApi. MyApp is the prefix of your web site (yourwebsite/MyApp).

like image 106
Hamdi Baligh Avatar answered Oct 13 '22 09:10

Hamdi Baligh