webclient качает только если программа запущена из студии
От: vasilov  
Дата: 24.06.08 15:18
Оценка:
Не хочет качать страницу при запуске из винды.
Если запустить из студии, то все нормально.
Код:
            WebClient client = new WebClient();
            string reply = client.DownloadString(URL.GetURL(programName, DateTime.Now.AddDays(i)));
Нужный урл точно есть.
Прокси нету, даже файрвол выключал. Не помогает.
А при включенном файрволе даже запрос на разрешение коннекта не появляется.

Почему не качает?
... << RSDN@Home 1.2.0 alpha 4 rev. 1091>>
Re: webclient качает только если программа запущена из студи
От: Alexey M.  
Дата: 24.06.08 15:27
Оценка:
Здравствуйте, vasilov, Вы писали:

V>Почему не качает?


Проверте URL по которому происходит обращение. Если не указывать http:// в начале адреса, то обращение будет происходить к локальной файловой системе.
Re[2]: webclient качает только если программа запущена из ст
От: vasilov  
Дата: 24.06.08 16:41
Оценка:
Здравствуйте, Alexey M., Вы писали:

AM>Здравствуйте, vasilov, Вы писали:


V>>Почему не качает?


AM>Проверте URL по которому происходит обращение. Если не указывать http:// в начале адреса, то обращение будет происходить к локальной файловой системе.

http есть.
Проблема в разнице поведения программы.
Запущеная из IDE качает, а запущенная нормально из виндов не хочет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1091>>
Re[3]: webclient качает только если программа запущена из ст
От: AlexSorokoletov Беларусь http://sorokoletov.com
Дата: 24.06.08 18:40
Оценка:
Здравствуйте, vasilov, Вы писали:

V>Здравствуйте, Alexey M., Вы писали:


AM>>Здравствуйте, vasilov, Вы писали:


V>>>Почему не качает?


AM>>Проверте URL по которому происходит обращение. Если не указывать http:// в начале адреса, то обращение будет происходить к локальной файловой системе.

V>http есть.
V>Проблема в разнице поведения программы.
V>Запущеная из IDE качает, а запущенная нормально из виндов не хочет.
Советую обратить внимание на пользователей, от которых запущен веб-клиент.
В студии он запускается от текущего пользователя, а вот вне студии — зависит от реализации. Служба это или еще что-либо.
Re: webclient качает только если программа запущена из студи
От: Mr.Cat  
Дата: 24.06.08 19:15
Оценка:
Здравствуйте, vasilov, Вы писали:
V>Почему не качает?

Вариантов масса. Например, при запуске вне студии Вы забыли прописать какой-нить аргумент командной строки (ну или еще что-нить в таком духе, например, текущая папка другая стала — и программа не нашла какой-нить конфигурационный файл) и программа падает вообще до вызова указанного кода. Вариантов масса.

Сделайте в программе отладочную печать (на консоль или в файл) и поглядите, в каком месте она падает.
Re[4]: webclient качает только если программа запущена из ст
От: vasilov  
Дата: 24.06.08 19:26
Оценка:
Здравствуйте, AlexSorokoletov, Вы писали:

V>>Проблема в разнице поведения программы.

V>>Запущеная из IDE качает, а запущенная нормально из виндов не хочет.
AS>Советую обратить внимание на пользователей, от которых запущен веб-клиент.
AS>В студии он запускается от текущего пользователя, а вот вне студии — зависит от реализации. Служба это или еще что-либо.
Никаких проблем с пользователями. Никаких служб — обычная WinForms программа.
На моей домашней машине.
Из студии запустил — скачалось, тут же зашел в bin/debug и запустил — фиг.
Виснет на строке client.DownloadString.
... << RSDN@Home 1.2.0 alpha 4 rev. 1091>>
Re[2]: webclient качает только если программа запущена из ст
От: vasilov  
Дата: 24.06.08 20:09
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, vasilov, Вы писали:

V>>Почему не качает?
MC>Вариантов масса. Например, при запуске вне студии Вы забыли прописать какой-нить аргумент командной строки (ну или еще что-нить в таком духе, например, текущая папка другая стала — и программа не нашла какой-нить конфигурационный файл) и программа падает вообще до вызова указанного кода. Вариантов масса.
MC>Сделайте в программе отладочную печать (на консоль или в файл) и поглядите, в каком месте она падает.
Ну отладочная была.
Только не замечалась ошибка. Закачка в отдельном thread была.
Поставил в onLoad формы строки
            WebClient client = new WebClient();
            Text = client.DownloadString("http://ya.ru");
и при запуске выскочила ошибка
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Data at the root level is invalid. Line 1, position 1. (E:\Arbeit\3. Работа(все остальное)\CSarp\Телепрограмма\TVLoadAfisha\TVLoadAfisha\bin\Debug\TVLoadAfisha.config line 1) ---> System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
   at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlTextReader.Read()
   at System.Configuration.XmlUtil..ctor(Stream stream, String name, Boolean readToFirstElement, ConfigurationSchemaErrors schemaErrors)
   at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
   --- End of inner exception stack trace ---
   at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
   at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   --- End of inner exception stack trace ---
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
   at System.Diagnostics.DiagnosticsConfiguration.Initialize()
   at System.Diagnostics.DiagnosticsConfiguration.get_Sources()
   at System.Diagnostics.TraceSource.Initialize()
   at System.Net.Logging.InitializeLogging()
   at System.Net.WebClient.DownloadString(Uri address)
   at System.Net.WebClient.DownloadString(String address)
   at TVLoadAfisha.Form1.Form1_Load(Object sender, EventArgs e) in E:\Arbeit\3. Работа(все остальное)\CSarp\Телепрограмма\TVLoadAfisha\TVLoadAfisha\Form1.cs:line 31
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

А из студии прокатывает без ошибок. Откуда-что взялось, непонятно.
Как я понял, какие-то настройки проекта поломались.
Наверное, проще создать новый проект и перетащить туда исходники.
Спасибо за внимание.
Вопрос закрываю.
... << RSDN@Home 1.2.0 alpha 4 rev. 1091>>
Re[3]: webclient качает только если программа запущена из ст
От: AlexSorokoletov Беларусь http://sorokoletov.com
Дата: 24.06.08 20:16
Оценка:
А можно код в студию?
Re: webclient качает только если программа запущена из студи
От: vasilov  
Дата: 27.06.08 07:38
Оценка: :)
Спасибо тем, кто пытался помочь.
Нашел причину.

Я пытался хранить настройки программы в файле <имя проекта>.config.
Формат свой.
Судя по всему, при попытке скачать страницу, net'ная библиотека, увидев наличие такого файла, пытается его зачитать и достать оттуда какие-то свои настройки. И в связи с тем, что у меня не xml формат, валится с ошибкой не обрабатывая ее сама.

Решением проблемы стало хранение своих настроек в <имя проекта>.cfg.

Мне кажется такое поведение framework'а некорректным, но как настучать об этом Биллу Гейтсу (во всех смыслах), я не знаю.
Тем более, при запуске из студии такой проблемы почему-то не возникает.
... << RSDN@Home 1.2.0 alpha 4 rev. 1091>>
Re[2]: webclient качает только если программа запущена из ст
От: Ник  
Дата: 30.06.08 18:43
Оценка:
V>Мне кажется такое поведение framework'а некорректным, но как настучать об этом Биллу Гейтсу (во всех смыслах), я не знаю.
V>Тем более, при запуске из студии такой проблемы почему-то не возникает.
в гугле пишем report .net framework bug, вторая ссылка — Ваша. Только там надо зарегистривовать Live-аккаунт.
Re[2]: webclient качает только если программа запущена из ст
От: Mab Россия http://shade.msu.ru/~mab
Дата: 01.07.08 06:07
Оценка:
Здравствуйте, vasilov, Вы писали:

V>Мне кажется такое поведение framework'а некорректным

Это Вам кажется. Файл .exe.config уже давно распознаётся системой, а не только .net framework.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.