当我尝试在 web 服务器 IIS 上发布 web api 时,我得到了一个错误的 hangfire 实现。(WServer 2012)当我在 IIS express 上的计算机主机上启动时,它在本地工作。它运行良好,我在仪表板上看到了我的工作。我在 Web 服务器 db 上使用相同的连接字符串,但它在 Web 服务器上不起作用。错误是这样的;
类别:Hangfire.Processing.BackgroundExecution EventId:0
由于异常,执行BackgroundServerProcess在00:00:30.0352717仍处于Failed状态,将在00:00:15内重试
异常:System.Data.SqlClient.SqlException (0x80131904):用户 'ABC SERVER' 登录失败。在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 标识,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,布尔 applyTransientFaultHandling,字符串 accessToken)在 System.Data。 SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
在 ConfigureServices() 方法中;
services.AddHangfire(_ => _.UseSqlServerStorage(Configuration.GetConnectionString("HangfireDbConn"), new SqlServerStorageOptions
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
QueuePollInterval = TimeSpan.Zero,
UseRecommendedIsolationLevel = true,
UsePageLocksOnDequeue = true,
DisableGlobalLocks = true
}));
在 Configure() 方法中;
app.UseHangfireDashboard("/jobs");
app.UseHangfireServer();
相同的数据库连接,本地 pc 调试模式工作正常但在 Web 服务器上发布,我从 Web 服务器收到登录失败错误有什么区别?
有什么解决方案吗?感谢大家的支持。