我使用 ASP.NET vnext 创建了一个非常小的项目,其中包含一个简单的 MVC Controller 和一个简单的 Api Controller 。
在本地主机上,一切正常。 如果我部署到 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" : { }
}
}
启动.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 Controller
public class HomeController : Controller
{
// GET: /<controller>/
public string Index()
{
return "Hello world";
}
}
API Controller
[Route("api/[controller]")]
public class MessagesController : Controller
{
// GET: api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
MVC Controller 工作正常,但如果我转到 http://myproject.azurewebsites.net/api/Messages它返回 404
最佳答案
这是我解决问题的方法:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
我不知道为什么它在本地工作......
关于azure - ASP.Net vnext api 在 localhost 上工作,在 azure 上返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350147/