C # Windows Service не выполняет некоторые коды - PullRequest
0 голосов
/ 30 апреля 2018

Я реализовал приложение Windows Forms, которое работает нормально, после этого я решил преобразовать приложение Windows Form в службу Windows,

EventLog.WriteEntry("Before Calling Invoices1");

эта строка является первой строкой службы, и она работает нормально, и я вижу журнал в окне просмотра событий, следующая строка - это вызов функции

bool ff = LoginLogoutAction(true);

и первая строка в этой функции (LoginLogoutAction) -

EventLog.WriteEntry("inside LoginLogoutAction");

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

Я отредактировал службу для входа в систему как администратор, но не решил проблему

Функция LoginLogoutAction:

private bool LoginLogoutAction(bool bLogin)
    {
        EventLog.WriteEntry("inside LoginLogoutAction");
        try
        {
            strCurrentServiceURL = "https://10.0.0.10:50000/b1s/v1/";
            currentConnectionInfo.CompanyDB = "ALLAYAN";
            currentConnectionInfo.UserName = "manager";
            currentConnectionInfo.Password = "1234";

            if (bLogin)
            {
                EventLog.WriteEntry("Inside if statement");
                //System.Windows.Forms.MessageBox.Show("Please wait while login...");
                currentOdataService.InitServiceContainer(strCurrentServiceURL);

                if (!currentConnectionInfo.IsValid())
                {
                    EventLog.WriteEntry("Inside if not valid will get out login failed");
                    //System.Windows.Forms.MessageBox.Show("Make sure correct user name, password and company database provided");
                    return false;
                }
                EventLog.WriteEntry("before logging in");
                B1Session session = currentOdataService.LoginServer(currentConnectionInfo);
                EventLog.WriteEntry("after logging in");
                if (null != session)
                {
                    //bConnected = true;

                    string strDisplay = currentOdataService.GetRequestHeaders() + currentOdataService.GetResponsetHeaders() + Newtonsoft.Json.JsonConvert.SerializeObject(session, Newtonsoft.Json.Formatting.Indented);
                    return true;
                }
                else
                {
                    EventLog.WriteEntry("Session is null");
                    return false;
                    //button9.BackColor = Color.Red;
                    //bConnected = false;
                    //button9.Text = "Login";
                    //System.Windows.Forms.MessageBox.Show("Failed to login, please make sure server is running and the credentials are correct.");
                }
            }
            else
            {
                //bConnected = false;
                currentOdataService.LogoutServer();
                return true;
                //button9.Text = "Login";
                //button9.BackColor = Color.Empty;
                //System.Windows.Forms.MessageBox.Show("Logout from service successfully");
            }
            return true;
        }
        catch (Exception ex)
        {
            EventLog.WriteEntry("Error while logging in " + ex.Message + ex.InnerException.Message);
            return false;
        }
    }
...