Мой IIS AppPool работает как пользователь определенного домена, поэтому мой сайт может получить доступ к SQL-серверу через проверку подлинности Windows.Это хорошо работает.
Но я также динамически создаю запланированные задачи Windows.Я не могу создать эти задачи как пользователь пула приложений IIS, так как пользователь не вошел на веб-сервер и, следовательно, задачи не выполняются.
С помощью этой ссылки я теперь могу создавать свои запланированные задачи как пользователь NetworkService.Но когда я запускаю мое приложение из IIS, оно теперь работает очень хорошо.
Все еще создает задачи, но задача также пытается войти в SQL с проверкой подлинности Windows, но, похоже, использует локального системного пользователя.который не имеет разрешения Win Auth для SQL.
Есть ли способ, что моя запланированная задача сможет войти в SQL с Win Auth?(запуск задачи от имени пользователя домена не будет работать, поскольку задача может быть выполнена только в том случае, если пользователь вошел в систему или я ввожу пароль, который будет невозможен).
Или я совершенно не правпуть, и я должен попробовать что-то совершенно другое?
Мой код для создания задачи:
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "My Test";
td.Principal.Id = "NT AUTHORITY\\NETWORKSERVICE";
td.Principal.LogonType = TaskLogonType.ServiceAccount;
td.Triggers.Add(new DailyTrigger {DaysInterval = 1});
td.Actions.Add(new ExecAction("c:\\mydir\\myjob.exe"));
td.Settings.AllowDemandStart = task.AllowDemandStart;
td.Settings.Hidden = task.Hidden;
ts.RootFolder.RegisterTaskDefinition("My Test", td,
TaskCreation.CreateOrUpdate, "NT AUTHORITY\\NETWORKSERVICE", null,
TaskLogonType.ServiceAccount);
}