Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы с Windows Service / 25 сообщений из 29, страница 1 из 2
15.04.2008, 15:05
    #35256415
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Помогите пожалуйста....
Был рабочий сервис, который выполнял рассылку и БД (SQL Server 2000) хранилась на локальной машине, потом возникла необходимость перенести БД (SQL Server 2000) на сервер БД и сервис перестал работать (строку соединения изменила)... то есть он запускается, ошибок не выдает, но при этом просто ничего не делает, если бы он выполнял рассылку тогда бы это записывалось файл, а так ни каких сообщений об ошибках (сообщения об ошибках записываются в файл) и ни каких действий... права доступа к БД есть...
Надеюсь на Вашу помощь...
Спасибо!!!
...
Рейтинг: 0 / 0
15.04.2008, 15:32
    #35256534
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Linelправа доступа к БД есть...
Как проверяли?
...
Рейтинг: 0 / 0
15.04.2008, 15:45
    #35256590
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Просто когда их не было, в файл записывалась ошибка... после чего я дала права и все стала на свое место...
...
Рейтинг: 0 / 0
15.04.2008, 16:05
    #35256667
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Через что шлём сообщения?
...
Рейтинг: 0 / 0
15.04.2008, 16:06
    #35256674
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
И вообще... если есть исходный код, проще в него посмотреть...
...
Рейтинг: 0 / 0
15.04.2008, 16:08
    #35256682
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Проверьте версию фреймворка на сервере... может она старая...
...
Рейтинг: 0 / 0
15.04.2008, 16:12
    #35256693
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
buserИ вообще... если есть исходный код, проще в него посмотреть...
Исходный код есть... всем форумом писали....
...
Рейтинг: 0 / 0
15.04.2008, 16:52
    #35256817
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
D129 buserИ вообще... если есть исходный код, проще в него посмотреть...
Исходный код есть... всем форумом писали....
Не надо издеваться, я его переписала...
Вот код...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
...
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                    Options paramOpt = new Options();
                    //OptionsSerializer.CreateSettings(paramOpt);
                    OptionsSerializer.LoadSettings(ref paramOpt);
                    
               
                if ((DateTime.Today.DayOfWeek.ToString() != "Saturday") ||(DateTime.Today.DayOfWeek.ToString() != "Sunday")
                    && (DateTime.Now.Hour==paramOpt.HourTime)) 
                    
                {
                    //<summary>
                    // Создание соединения БД
                    //</summary>
                    //string connectionString =
                    //    "Data Source=UMN-ASUP-RVV;Initial Catalog=Corporation;Integrated Security=True";

                    //corporationConnectionString
                    string corporationcConnectionString =
                          "Data Source=YANUS-A;Initial Catalog=corporation;Integrated Security=True";

                    SqlConnection conn = new SqlConnection(corporationcConnectionString);
                    try
                    {
                        conn.Open();
                    }
                    catch (SqlException ex)
                    {
                        this.file.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t") + ex);
                        this.file.Flush();
                        return;
                    }


                    //<summary>
                    // Создание и заполнение DataSet и DataTable из таблицы Personal
                    //</summary>
                    string SelectString = "Select id, fio, birthdate, email FROM personal";
                    SqlCommand SelectPersonal = conn.CreateCommand();
                    SelectPersonal.CommandText = SelectString;
                    SqlDataAdapter PersonalSqlDataAdapter = new SqlDataAdapter();
                    PersonalSqlDataAdapter.SelectCommand = SelectPersonal;
                    DataSet CorporationDataSet = new DataSet();
                    string dataTableName = "Personal";
                    PersonalSqlDataAdapter.Fill(CorporationDataSet, dataTableName);


                    //<summary>
                    // Создание и заполнение DataSet и DataTable из таблицы Sending
                    //</summary>
                    string SendingString = "Select * FROM Sending";
                    SqlCommand SelectSending = conn.CreateCommand();
                    SelectSending.CommandText = SendingString;
                    SqlDataAdapter SendingSqlDataAdapter = new SqlDataAdapter();
                    SendingSqlDataAdapter.SelectCommand = SelectSending;
                    string TableName = "Sending";
                    SendingSqlDataAdapter.Fill(CorporationDataSet, TableName);


                    conn.Close();


                    DataRow[] rowPersonal = CorporationDataSet.Tables[dataTableName].Select();
                    DataRow[] rowSending = CorporationDataSet.Tables[TableName].Select();

                    int n = 0;
                    StringBuilder myTelo = new StringBuilder();
                    foreach (DataRow rowtelo in rowPersonal)
                    {
                        if (rowtelo["birthdate"] != DBNull.Value)
                        {
                            if (HasBirthdayAnniversary(Convert.ToDateTime(rowtelo["birthdate"]), paramOpt.Opt))
                            {
                                object myTeloObj = rowtelo["birthdate"];
                                if (myTeloObj != DBNull.Value)
                                {
                                    myTelo.Append(
                                   String.Format("{0}\t{1}\r\n",
                                                 Convert.ToDateTime(rowtelo["birthdate"]).ToShortDateString(),
                                                 rowtelo["fio"].ToString().Trim()));


                                    n = n + 1;
                                }
                            }
                        }
                    }
                    
                    if (n == 0)
                    {
                        myTelo.Append("Именинников нет!!!");
                    }


                    foreach (DataRow rp in rowPersonal)
                    {
                        foreach (DataRow rs in rowSending)
                        {
                            if (Equals(rp["id"], rs["Personal_id"]))
                            {
                                MailMessage mail = new MailMessage();
                                MailAddress mAddress = new MailAddress("service@ppdmn.com");
                                mail.From = mAddress;
                                mail.To.Add(rp["email"].ToString());
                                mail.Subject = "Поздравляем с днем рождения!!!";
                                mail.BodyEncoding = System.Text.Encoding.UTF8;
                                mail.Body = myTelo + "\n";
                                SmtpClient client = new SmtpClient("main");
                                client.Send(mail);
                                file.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t") + "Send to: " +
                                               rp["email"].ToString());
                                file.Flush();

                            }
                        }
                    }
                }
            }
            catch
               (Exception exc)
            {
                this.file.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t") + exc);
                this.file.Flush();
                return;
            }
        }
}
...
...
Рейтинг: 0 / 0
15.04.2008, 17:19
    #35256910
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Ох... а от имени какой учетной записи стартует ваш сервис... ???? !!!!
Или ваш почтовик используется для рассылки спама? :)
//SmtpClient.Credentials ?
//Integrated Security=True ?
...
Рейтинг: 0 / 0
15.04.2008, 17:40
    #35256982
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
buserОх... а от имени какой учетной записи стартует ваш сервис... ???? !!!!
Или ваш почтовик используется для рассылки спама? :)
//SmtpClient.Credentials ?
//Integrated Security=True ?
мой сервис стартует от моей учетной записи, а не от "Локальная система"
...
Рейтинг: 0 / 0
15.04.2008, 18:19
    #35257122
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Хорошо... а
file.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t") + "Send to: " + rp["email"].ToString());
В файл пишется?
...
Рейтинг: 0 / 0
15.04.2008, 18:32
    #35257151
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Если да, то отлуп Вы получаете от почтовика... по причинам разным... левый отправитель, левый получатель, требуется аутентификация...
автор
Some SMTP servers require that the client be authenticated before the server will send e-mail on its behalf. To use your default network credentials, you can set the UseDefaultCredentials to true instead of setting this property. If the UseDefaultCredentials property is set to false, then the value set in the Credentials property will be used for the credentials when connecting to the server. If the UseDefaultCredentials property is set to false and the Credentials property has not been set, then mail is sent to the server anonymously .

Credentials information can also be specified using the application and machine configuration files. For more information, see <mailSettings> Element (Network Settings). If information is specified using the Credentials property, this information overrides the configuration file settings.


Код: plaintext
1.
2.
3.
4.
5.
6.
			// Credentials are necessary if the server requires the client 
			// to authenticate before it will send e-mail on the client's behalf.
			client.Credentials = CredentialCache.DefaultNetworkCredentials;

			client.Send(message);

...
Рейтинг: 0 / 0
16.04.2008, 01:55
    #35257577
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
я бы посмотрел в первую очередь, корректно ли это условие на новом месте:
if ((DateTime.Today.DayOfWeek.ToString() != "Saturday") ||(DateTime.Today.DayOfWeek.ToString() != "Sunday")&& (DateTime.Now.Hour==paramOpt.HourTime))
Проверьте, выполняется ли это условие
...
Рейтинг: 0 / 0
16.04.2008, 09:31
    #35257797
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
SQL_Lamerя бы посмотрел в первую очередь, корректно ли это условие на новом месте:
if ((DateTime.Today.DayOfWeek.ToString() != "Saturday") ||(DateTime.Today.DayOfWeek.ToString() != "Sunday")&& (DateTime.Now.Hour==paramOpt.HourTime))
Проверьте, выполняется ли это условие
сервис остался на локальной машине только БД перешла на другой сервер... условие выполняется и все работает если БД тоже на локальной машине...
...
Рейтинг: 0 / 0
16.04.2008, 09:32
    #35257801
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
buserХорошо... а
file.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t") + "Send to: " + rp["email"].ToString());
В файл пишется?
вот в этом и вопрос, что в файл ничего не пишется кроме как "сервис стартовал" и "сервис остановлен"
...
Рейтинг: 0 / 0
16.04.2008, 10:22
    #35257940
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Попробовала закинуть все что выполняет сервис в обычное windows-приложение под кнопку и все равно не работает... как только меняю строку подключения на локальную машину все работает и условие о котором спрашивалось выше тоже...
...
Рейтинг: 0 / 0
16.04.2008, 11:37
    #35258238
SerP1983
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
LinelПопробовала закинуть все что выполняет сервис в обычное windows-приложение под кнопку и все равно не работает... как только меняю строку подключения на локальную машину все работает и условие о котором спрашивалось выше тоже...
А проверить дебагом???
...
Рейтинг: 0 / 0
16.04.2008, 12:27
    #35258486
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
SerP1983 LinelПопробовала закинуть все что выполняет сервис в обычное windows-приложение под кнопку и все равно не работает... как только меняю строку подключения на локальную машину все работает и условие о котором спрашивалось выше тоже...
А проверить дебагом???
У меня и так выбран Debug а не Release...
...
Рейтинг: 0 / 0
16.04.2008, 13:30
    #35258780
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Значит вся проблема в строке подключения. Ваш сервис не получает достаточных прав для доступа к нужной базе.
"Data Source=YANUS-A;Initial Catalog=corporation;Integrated Security=True";
Советую переделать строку - добавить юзера и пароль, и чтобы это юзер был хозяином базы данных.
Как говорится, обратитесь к системному администратору.

Море излечило меня от Джихада...(с)
...
Рейтинг: 0 / 0
16.04.2008, 13:57
    #35258888
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
D129Значит вся проблема в строке подключения. Ваш сервис не получает достаточных прав для доступа к нужной базе.
"Data Source=YANUS-A;Initial Catalog=corporation;Integrated Security=True";
Советую переделать строку - добавить юзера и пароль, и чтобы это юзер был хозяином базы данных.
Как говорится, обратитесь к системному администратору.

Море излечило меня от Джихада...(с)
я имею права создавать таблицы, редактировать для этой БД, но нет прав для создания БД на этом сервере...
...
Рейтинг: 0 / 0
16.04.2008, 14:10
    #35258942
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
А, еще одну вещь вспомнил - как у Вас зарегистрирован сервис? как LocalService, NetworkService, LocalSystem или User?
это тоже имеет значение в этом случае.
(свойства - ServiceProcessInstaller->Account)
...
Рейтинг: 0 / 0
16.04.2008, 14:14
    #35258953
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
D129А, еще одну вещь вспомнил - как у Вас зарегистрирован сервис? как LocalService, NetworkService, LocalSystem или User?
это тоже имеет значение в этом случае.
(свойства - ServiceProcessInstaller->Account)
у меня сервис запускается от моего имени, а не от Локальной системы...
Но дело даже в том что даже из под обычного windows-приложения, при нажатие кнопки, не выполняется рассылка когда БД на сервере...
...
Рейтинг: 0 / 0
16.04.2008, 14:16
    #35258964
Andaim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Linel
у меня сервис запускается от моего имени, а не от Локальной системы...
Но дело даже в том что даже из под обычного windows-приложения, при нажатие кнопки, не выполняется рассылка когда БД на сервере...
ну так пройдите дебагером повсей программе, посмотрите где валится
...
Рейтинг: 0 / 0
17.04.2008, 10:27
    #35260928
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
Народ... а может быть такое, что на локальной машине я администратор sql sever, а на сервере БД нет, вот и каша с правами получается...
...
Рейтинг: 0 / 0
17.04.2008, 17:42
    #35262768
Linel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с Windows Service
сервис заработал...
Дело было в правах и в заполнение таблицы...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблемы с Windows Service / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]