500 - 在 MVC 应用程序中发布重定向后 ASP.NET 内部服务器错误

500 - Internal server error after publishing redirect in ASP.NET MVC application

提问人:Patrick 提问时间:11/10/2023 最后编辑:Patrick 更新时间:11/16/2023 访问量:115

问:

这个赏金已经结束了。这个问题的答案有资格获得 +50 声望赏金。赏金宽限期将在 8 小时后结束。帕特里克正在寻找一个有信誉的来源的答案

对于具有新 URL 的页面,我有以下重定向:

[RoutePrefix("eventos-online")]
public class OnlineEventsController : Controller
{
    [Route]
    public ActionResult Index()
    {
        return View();
    }

    [Route("contacto")]
    public ActionResult Contact()
    {
         return Redirect(Url.Action("Index", "OnlineEvents") + "#contacte-nos");
    }
}

在我的笔记本电脑 () 上,发布到生产环境后一切正常 - https://www.izigo.pt/eventos-online/contacto - 我得到:localhost

500 - 内部服务器错误。
您要查找的资源有问题,无法显示。

编辑:发现问题,在应用程序的IIS主文件夹中的“contacto”文件夹中有一个带有重定向的Web.config文件。删除了文件夹,问题解决了。

C# ASP.NET-MVC 重定向

评论

1赞 Stephen Ostermiller 11/15/2023
我投票决定关闭这个问题,因为 500 错误是一个非常通用的“出了点问题”错误。这可能是配置错误、权限问题或编码错误。有关错误具体原因的详细信息,请参阅服务器的错误日志。如果不查看日志,就无法准确回答这个问题。这里的任何答案都是猜测,有数百甚至数千个可能的答案。
0赞 MD. RAKIB HASAN 11/16/2023
检查生产服务器是否具有执行重定向所需的权限。
0赞 Dai 11/16/2023
@MD.RAKIBHASAN 在 ASP.NET 和 IIS 中发出 HTTP 3xx 响应不需要任何权限。
0赞 Patrick 11/16/2023
@StephenOstermiller,Jackdaw,MD.RAKIBHASAN,Dai,感谢您抽出宝贵时间评论我的问题,同时我找到了问题并发布了答案。
0赞 MD. RAKIB HASAN 11/16/2023
@Dai learn.microsoft.com/en-us/iis/configuration/system.webserver/......

答:

1赞 Patrick 11/16/2023 #1

经过深入搜索,我在 Web 应用程序 IIS 文件夹的“contacto”文件夹中发现了一个带有重定向的 Web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="https://www.izigo.pt/eventos-online#contacte-nos" exactDestination="true" childOnly="true" httpResponseStatus="Permanent" />
    </system.webServer>
</configuration>

删除文件夹后,问题解决了。

奇怪的是,将路由重命名为 [Route(“contactos”)] 在生产服务器中工作正常,这就是我开始朝那个方向搜索的原因。