IIS निष्क्रिय होने पर भी IIS में पृष्ठभूमि सेवा चलाएँ

प्रोग्रामिंग


मैं एक पृष्ठभूमि सेवा कार्यान्वित कर रहा हूं, समस्या यह है कि जब मैं इसे स्थानीय में चलाता हूं, तो यह ठीक काम कर रहा है क्योंकि ऐप हिट हो रहा है और चल रहा है। लेकिन, IIS में, मैंने कोड तैनात किया और IIS में सर्वर शुरू किया। जब तक मैं साइट ब्राउज़ नहीं करता, पृष्ठभूमि सेवा नहीं चल रही है और सर्वर निष्क्रिय होने पर निष्क्रिय हो रही है।

जैसे ही मैं साइट पुनः आरंभ या प्रारंभ करता हूं, मुझे पृष्ठभूमि सेवा की आवश्यकता होती है।

मेरा प्रोग्राम.सीएस:

सी#
builder.Services.AddHostedService<FailedEmailManagmentService>();

मैंने इसे रजिस्टर भी कर लिया है.

मैंने क्या प्रयास किया है:

सी#
using DocumentFormat.OpenXml.InkML;
using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing;
using handbook.Controllers.HR;
using handbook.Data;
using handbook.Models.Mail;
using handbook.Repositories.Implementation;
using handbook.Repositories.Interface;
using handbook.ViewModel;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System.Configuration;
using System.Globalization;
using System.Linq;

namespace handbook.BackgroundmailService
{
    public class EmailReminderSenderService : IHostedService, IDisposable
    {
        public static IConfiguration Configuration { get; set; }
        private Timer _timer;
        private readonly IOauthMailService _emailSender;
        private readonly ILogger<EmailReminderSenderService> _logger;

        public EmailReminderSenderService(IOauthMailService emailSender,
        ILogger<EmailReminderSenderService> logger, 
        IServiceProvider serviceProvider, IConfiguration configuration)
        {
            _emailSender = emailSender;
            _logger = logger;
            Services = serviceProvider;
            Configuration = configuration;
        }

        public IServiceProvider Services { get; }

        private static TimeSpan getJobRunDelay()
        {
            // Change the delay to run every 10 minutes
            return TimeSpan.FromMinutes(1);
        }

        public void Dispose()
        {
            _timer?.Dispose();
        }

        public Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Background service is started");
            _timer = new Timer(SendEmails, null, 
                               getJobRunDelay(), getJobRunDelay());
            return Task.CompletedTask;
        }
public async void SendEmails(object state)
        {
            my task
        }
public Task StopAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Background service is stopping");
            _timer?.Change(Timeout.Infinite, 0);
            return Task.CompletedTask;
        }
    }
}

समाधान 1

コメント

タイトルとURLをコピーしました