you solucion significa que página purposes puede own only google for esta development correctamente cargar cargado .net asp.net-mvc-4 asp.net-web-api http-status-code-404 azure-cloud-services

.net - significa - for development purposes only google maps solucion wordpress



La interfaz de la API web funciona de forma local pero obtiene 404 después de implementarse en el sitio web de Azure (3)

Es un problema común. Cuando se implementa una aplicación MVC en IIS, la URL HTTP que está llamando al servicio REST expuesto por su API web cambiará. Si su controlador api se llama MyApiController, en el entorno de producción, debe agregar el nombre de la aplicación antes de la URL de llamada. Eso significa que / api / MyApi se convertirá en / MyApp / api / MyApi. MyApp es el prefijo de su sitio web (yourwebsite / MyApp).

Estoy trabajando en un sitio web ASP.NET MVC 4. Junto con los controladores MVC, tengo un controlador API que contiene una interfaz GET API ajax. Funciona perfectamente cuando se depura localmente con Visual Studio.

Sin embargo, después de que lo implementé como un sitio web de Azure, los controladores MVC funcionan, pero el controlador API ya no funciona. Cuando el código jQuery intenta alcanzarlo, devuelve una respuesta como:

No se encontró ningún recurso HTTP que coincida con el URI de solicitud '' http://example.com ''.

Parece que al menos la ruta funciona (de lo contrario, se devuelve otro cuerpo de respuesta 404).

Además, tengo otro servicio de API web MVC 4 puro implementado como un servicio de Azure Cloud. Funciona perfectamente. Por lo tanto, me pregunto qué hace que la API dentro del sitio web de MVC falle. ¡Gracias!


Resolví el problema. Utilizo Telerik DataAccess como mi ORM, y el proyecto debería tener Copy Local a Verdadero .

Del mismo modo, agregue todas las referencias como Copia Local = Verdadero si parecen ser archivos DLL de terceros o de nuget.

Puede encontrar el error más fácilmente agregando <customErrors mode="Off" /> dentro de <system.web> en el archivo Web.config.


Verifica estas cosas que usualmente ayudan:

  1. Asegúrese de que su tipo de controlador sea público y se derive de ApiController
  2. Asegúrese de que el controlador se llame ''xxxxController'' donde xxxx es el nombre del controlador

En ese caso, la URL api / xxxx debería funcionar.