为了账号安全,请及时绑定邮箱和手机立即绑定

仅当部署到 IIS 时,控制器方法上的 .NET Core 2.0 MVC 奇数 404

仅当部署到 IIS 时,控制器方法上的 .NET Core 2.0 MVC 奇数 404

C#
有只小跳蛙 2021-06-03 14:40:31
我家的控制器成功地返回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?}");});
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

在尝试访问我网站的帐户控制器时,我遇到了类似的问题,即出现 404。所有其他 Razor 页面都可以正常工作。如果我在 web.config 中将 inheritInChildApplications="false" 更改为 true,则控制器开始工作。


<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <location path="." inheritInChildApplications="true">

   ...

</configuration>


查看完整回答
反对 回复 2021-06-05
  • 3 回答
  • 0 关注
  • 202 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信