我家的控制器成功地返回index.html
从
http://localhost/
和
http://localhost/controller/
但如果我试着打
http://localhost/controller/method/
404
即使该方法在 IIS express 中工作正常,我也会得到一个。
无法在网上找到任何有类似问题的人,其中只有控制器上的方法在一个特定部署上不起作用,但控制器本身很好。
我尝试过的许多 .Net Core 2.0 问题与 IIS 部署中很常见的事情:
确保在项目设置和 IIS 中启用了 Windows 身份验证(我已将其打开和关闭都无济于事,因为我的 Web 应用程序上没有用户身份验证,所以我认为这对我来说并不重要)。
切换我的应用程序池以No managed code
用于CLR
版本
将应用程序池 ID 更改为 LocalSystem
更改我的发布输出文件夹的权限以包括 %hostname%\IIS_IUSRS
很确定我也尝试了很多其他基本的故障排除,有时可以解决问题。IE 删除和阅读应用程序。再次打开和关闭东西无济于事。
任何解决此问题的建议将非常受欢迎。
我还想指出它昨天还在工作,并且不记得除了要使用的发布输出之外的任何其他更改,Debug
而不是Release
现在我已经改回了,Release
但仍然没有运气。
这是一些代码
public class MyController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpPost]
public void Store([FromBody]MyObject obj)
{
Console.WriteLine(Request.Body);
//Some code
}
[HttpGet]
public void Check(string objectUID, string idfv)
{
Console.WriteLine($"ObjectUID: {objectUID}");
Console.WriteLine($"IDFV: {idfv}");
//some other code
}
[HttpGet]
public MyObject Retrieve(string objectUID)
{
Console.Writeline($"ObjectUID: {objectUID}");
//Some Code
}
}
这是我的路由。
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=MyController}/{action=Index}/{id?}");
});
蝴蝶刀刀
相关分类