Службы выполняют запросы SQL? - PullRequest
0 голосов
/ 31 января 2019

Я хочу создать службу, которая перемещает документ и переименовывает его на основе таблицы, которая может использоваться запросом SQL.У меня есть тот же код, который использует нажатие кнопки и делает то, что нужно сделать.Однако, когда я запускаю службу, она видит документы, но затем переходит к захвату идентификатора для документа, но останавливается на запросе SQL и не продолжает.

Если я вынимаю вызовы SQL, он перемещает документы и переименовывает их в общее имя, которое я могу назначить.Я хочу автоматизировать это и использовать SQL-запрос.

    public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
    {
        eventLog1.WriteEntry("Monitoring the System.", EventLogEntryType.Information, eventId++);

        try
        {
            string dest = @"F:\Temp2\";
            foreach (var file in Directory.EnumerateFiles(@"F:\Temp\"))
            {
                List<Document> ld = new List<Document>();
                SQLImport si = new SQLImport();

                string fileName = Path.GetFileName(file.ToString());
                ld = si.getDocID();
                int docID = ld[0].DocID;
                int newDocName = docID + 1;
                int accountNumber = 1;
                string docStatus = "New Import";
                string fileName2 = docRetrieval.doc(newDocName.ToString());
                string newdocName = fileName2 + ".pdf";
                string nameChange = file.Replace(fileName, newdocName);
                si.setDocumentInformation(newDocName, accountNumber, dest, docStatus);
                string destFile = Path.Combine(dest, Path.GetFileName(nameChange));
                if (!File.Exists(destFile))
                    File.Move(file, destFile);

            }

        }
        catch (Exception)
        {
            eventLog1.WriteEntry("The process failed: {0}");
        }
    }

SQLImport / Export:

    public List<Document> getDocID()
    {

        using (IDbConnection connection = new SqlConnection(helper.CnnVal("WorkflowConfiguration")))
        {

            var output4 = connection.Query<Document>($"Select DocID From [Workflow Creation].[dbo].[CustomerDoc] ORDER BY DocID DESC").ToList();
            return output4;

        }
    }

Что упускается из виду?

1 Ответ

0 голосов
/ 01 февраля 2019

Я решил проблему, изменив Logon As с Local System на учетную запись, которая имеет доступ к SQL-серверу.Исходя из ответа от @ FlyDog57

Спасибо за вашу помощь!

...