使用Hangfire时出现SQL Server错误

问题描述 投票:6回答:3

说明:我在ASP.NET MVC5应用程序中使用Hangfire发送电子邮件。到目前为止,它工作正常,但现在当我运行应用程序时,它抛出了这个错误:

数据库中已经有一个名为“Job”的对象。安装Hangfire SQL对象...数据库模式[HangFire]已经存在表[HangFire]。[Schema]已经存在..安装模式版本1

从这个错误,我明白Hangfire试图在数据库中创建已经存在的所有那些表。但是我没有理由支持它,因为到目前为止应用程序工作正常,即使我在本地运行很多次。

请帮助解决此错误。

asp.net-mvc-5 hangfire
3个回答
3
投票

这发生在我身上,我运行此查询并重新启动服务器。只需运行查询:

INSERT INTO [HangFire].[Schema]
           ([Version])
     VALUES
           (5)

2
投票

当sql数据库用户没有数据库中的适当权限(db_datareaderdb_ddladmindb_datawriter等)时,这发生在我身上。

添加适当的权限可立即解决问题。


1
投票

我在导出\导入数据库后通过.bacpac完成了错误后出现了这个问题。我删除了开发数据库上的所有挂起表并且它工作了(小心,不要在生产数据库上这样做)。

DROP TABLE IF EXISTS HangFire.AggregatedCounter
DROP TABLE IF EXISTS HangFire.Counter
DROP TABLE IF EXISTS HangFire.Hash
DROP TABLE IF EXISTS HangFire.JobParameter
DROP TABLE IF EXISTS HangFire.JobQueue
DROP TABLE IF EXISTS HangFire.List
DROP TABLE IF EXISTS HangFire.[Schema]
DROP TABLE IF EXISTS HangFire.Server
DROP TABLE IF EXISTS HangFire.[Set]
DROP Table IF EXISTS HangFire.State
DROP TABLE IF EXISTS HangFire.Job
© www.soinside.com 2019 - 2024. All rights reserved.