ASP.Net vnext api 在本地主机上工作,returns 404 在 azure 上
ASP.Net vnext api working on localhost, returns 404 on azure
我用 ASP.NET vnext 创建了一个非常小的项目,带有一个简单的 MVC 控制器和一个简单的 Api 控制器。
在本地主机上,一切正常。
如果我部署到一个 Azure 网站,只有 MVC 部分在工作
这是我的 project.json
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"exclude": [
"wwwroot"
],
"packExclude": [
"node_modules",
"bower_components",
"**.kproj",
"**.user",
"**.vspscc"
],
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta2",
"Microsoft.AspNet.Mvc": "6.0.0-beta2"
},
"frameworks" : {
"aspnet50" : { },
"aspnetcore50" : { }
}
}
Startup.cs
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
namespace Project.Web6
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
app.UseMvc();
}
}
}
MVC 控制器
public class HomeController : Controller
{
// GET: /<controller>/
public string Index()
{
return "Hello world";
}
}
API 控制器
[Route("api/[controller]")]
public class MessagesController : Controller
{
// GET: api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
MVC 控制器工作正常,但如果我转到 http://myproject.azurewebsites.net/api/Messages 它 returns 404
我是这样解决问题的:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
我不知道为什么它在本地工作...
我用 ASP.NET vnext 创建了一个非常小的项目,带有一个简单的 MVC 控制器和一个简单的 Api 控制器。
在本地主机上,一切正常。 如果我部署到一个 Azure 网站,只有 MVC 部分在工作
这是我的 project.json
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"exclude": [
"wwwroot"
],
"packExclude": [
"node_modules",
"bower_components",
"**.kproj",
"**.user",
"**.vspscc"
],
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta2",
"Microsoft.AspNet.Mvc": "6.0.0-beta2"
},
"frameworks" : {
"aspnet50" : { },
"aspnetcore50" : { }
}
}
Startup.cs
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
namespace Project.Web6
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
app.UseMvc();
}
}
}
MVC 控制器
public class HomeController : Controller
{
// GET: /<controller>/
public string Index()
{
return "Hello world";
}
}
API 控制器
[Route("api/[controller]")]
public class MessagesController : Controller
{
// GET: api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
MVC 控制器工作正常,但如果我转到 http://myproject.azurewebsites.net/api/Messages 它 returns 404
我是这样解决问题的:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
我不知道为什么它在本地工作...