首页 > 解决方案 > HangerFire 在删除失败作业时在生产服务器中显示 404 错误

问题描述

当我尝试删除生产服务器中失败的作业时,我收到 404 错误,但我可以在本地 PC 中删除它们。

URL https://mywebsite.com/hangfire/jobs/failed/delete HTTP ERROR 404

URL https://localhost:59141/hangfire/jobs/failed/delete HTTP 200

谁能让我知道为什么这只发生在生产服务器上。这个网址后面只有一个服务器。在此先感谢...</p>

标签: c#asp.net-mvcproduction-environmenthangfire

解决方案


我实际面临的问题是 - 我在 IIS 的 sharepoint 网站内部署了 hangfire 应用程序。

删除作业的路径在按钮单击时是这样的

http://SharePointWebsite/MyAapplicationWebSite/hangfire/jobs/failed/delete

这是hangfire代码在内部生成的路径(我将hangfire程序集引用添加到我的项目中)。由于某些配置问题,我的 Share Point 应用程序不接受这条巨大的路径。所以我将路径更改为 http://SharePointWebsite/MyAapplicationWebSite/hangfire/jobs/faileddelete

(我在路径中删除了一个“/”)对我有用。

如何更改自动生成的路径:

从现在开源的 GitHub 获取 HangFire 代码

在仪表板页面中,您将找到 FailedJobsPage.cshtml。使用您想要的短网址更新此页面内容。

但是在您运行自定义工具之前不会呈现此 cshtml - 此 cshtml 页面生成 cs 文件的“剃须刀生成器工具”(VS 扩展)您可以看到这些 cs 文件已经存在于 GitHub 代码中(展开 cshtml 页面,您将找到cs文件)

完成上述步骤后,请确保在 DashboardRoutes.cs 文件中也配置了相同的路径。

==========================

SharePoint 应用程序 Web 配置的“处理程序”部分中的“ExtensionlessUrlHandler-Integrated-4.0”导致实际问题


推荐阅读