当我尝试在域/ hangfire /上访问本地IIS上的hangfire控制台时,我收到了404响应.这是针对.Net 4.5.1的webforms项目,Hangfire是1.5.3版.我的startup和authorisationoverride类如下:
[assembly: OwinStartup(typeof(MyNamespace.Startup))] namespace MyNamespace { public class Startup { public void Configuration(IAppBuilder app) { GlobalConfiguration.Configuration.UseSqlServerStorage("MyConnString"); DashboardOptions opts = new DashboardOptions { AuthorizationFilters = new[] { new AuthorisationOverride() } }; app.UseHangfireServer(); app.UseHangfireDashboard("/hangfire", opts); } } } public class AuthorisationOverride : Hangfire.Dashboard.IAuthorizationFilter { public bool Authorize(IDictionaryowinEnvironment) { return true; } }
工作正在成功运行,但我已经没有让Dashboard工作的想法了.
我有类似的东西,但我设法通过阅读这篇文章解决它.
如果你还没有,希望你能有更好的运气.我的主要问题是缺少DLL,然后从TemporaryASP.NET文件夹中删除站点数据.
编辑:有人下来投了这个答案因为我使用了解决方案的链接.
由于我确实找到了解决这个特定问题的方法,我想我会再试一次分享.:)
以下是我采取的解决方案步骤.
确认您在此项目的bin目录中有Microsoft.Owin.Host.SystemWeb.dll.(就我而言,dll丢失了)
停止你的应用程序池
导航到TemporaryASP.NET文件夹:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files并删除站点/应用程序文件夹中的文件夹.
重启你的app池
导航到"/ admin"或默认设置仪表板URL为"/ hangfire"的任何内容.
今天已经为此奋斗了几个小时,并在我的项目中对其进行了修复。
尝试通过Startup
类的Configuration
方法将Hangfire配置代码上移。
我的Hangfire配置代码位于代码的最底部,Startup.Configuration
只是偶然发现在我配置的其他OWIN东西之前,将其移动时,仪表板又可以工作了。
具体来说,我将其移至项目中的以下代码上方:
app.UseCors(CorsOptions.AllowAll); app.MapSignalR(); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); RouteConfig.RegisterRoutes(RouteTable.Routes); // my AutoMapper configuration // some async/await code that was calling .Wait() here.
我没有花时间确切地弄清楚哪行代码破坏了Hangfire仪表板,但我希望对您有所帮助。
另外,为了记录在案,旧代码还在IIS Express上的https:// localhost:44342 / hangfire下运行。我在https:// localhost / appname / hangfire的完整IIS中获取404 。