Как вызвать метод в службе Windows из другого проекта? - PullRequest
0 голосов
/ 22 сентября 2019

Я разработал приложение WPF, которое я хочу запускать в качестве службы Windows.поэтому я добавил в решение MSEdge.Service и попытался добавить код и функциональность приложения WPF.У меня есть решение, которое имеет несколько проектов, как показано ниже MSEdge.DB, MSEdge.Monitor, MSEdge.Service, MSEdge.UI

Я вызвал метод getAll_list () в MSEdge.service из MSEdge.DB, но я не могучтобы получить данные из кода DB

// в ScanManager

namespace MSEdge.DB.Data
{
    public class ScanManager : IPersistenceManager<Scan>
    {
        private static readonly Logger Logger = LogManager.GetLogger(typeof(ScanManager).Name);

        public IList<Scan> GetAll()
        {
            //Logger.Debug("GetAll() started...");
            Scans = new List<Scan>();

            using (var ctx = new MSDataContext()) 
            {
                try
                {
                    foreach (var i in ctx.Scans) //Error Occurs here
                    {
                    }
                }
            }
        }
    }
}


//code in Service1

public void ExecuteOnlineStatus()
{
    ScanManager scanManager = new ScanManager();// using MSEdge.DB.Data;
    var scans =  scanManager.GetAll();

    //not found any scan in list

    foreach (var ex in scans)
    {
        if (ex.Status != (null))
        {// 
        }
    }
}

, когда я запускаю приложение UI WPF, оно запускается Ok.но когда я запускаю службы, я получаю ошибку , как показано ниже.

Ошибки: SQL = Для оценки функции требуются все потоки.Не найден поставщик Entity Framework для поставщика ADO.NET с инвариантным именем System.Data.SqlClient.Убедитесь, что поставщик зарегистрирован в разделе «entityFramework» файла конфигурации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...