Запуск Net 4.0 говнобыдлопроги из сетевой папки с помощью gpo
Может быть, дело в недостатке каких-то прав у пользователя, от имени которого запускается прога?
Руками я запускал от того же пользователя. и gpo выполнялась для domain admin'а
Больше ничего не придумал.
try
{
tcpClient = new TcpClient(host, port);
var stream = tcpClient.GetStream;
// Тут оно чё то делает
}
catch (Exception ex)
{
var debugMsg = ex.Message;
Crutches.DebugMsg(debugMsg);
}
показал, что отваливается по эксепшну с debugMsg :
Подключение не установлено, т.к. конечный компьютер отверг запрос на подключениеЧто нада сделать, чтобы этот TcpClient явно биндился на нормальный адрес ? (при запуске руками он по ходу нормально биндится).
127.0.0.1:22000
Что нада сделать, чтобы этот TcpClient явно биндился на нормальный адрес ? (при запуске руками он по ходу нормально биндится).Передавать этот адрес в строке host.
upd :
тысячу раз бля ! строка host вытягивается из ini файла, в случае ненахождения ini- файла, оно даёт дефолтный 127.0.0.1. ini файл лежит рядом с exe-шником. При запуске руками он, по ходу дела, нормально подтягивается.
В общем жесткое прописывание хоста в коде пока вроде решило проблему.
ini файл разбирается самодельным быдлопарсером, в основе работы которого лежит :
try
{
var sr = new StreamReader("settings.ini");
string line = "";
var dict = new Dictionary<string, string>
while line = sr.ReadLine != null)
{
var parts = line.Split('=');
var key = parts[0].Trim;
var value = parts[1].Trim;
dict.Add(key, value);
}
.....
}....
Соответственно, settings.ini лежит рядом с запускаемым файлом.
Почему при запуске из gpo логон скрипта не может съесть этот settings.ini ? Нужно прописать абсолютный путь ? Как получить абсолютный путь ?
По идее, отличие запуска вручную от запуска через службу отличается тем, что во втором случае нет UI.UI есть у обоих. Просто во втором случае есть ещё ряд специфичный процедур для инициализации.
короче смотри. Как только создал проект - первым делом подключаешь лог4нет. И все пишешь-пишешь. Вопросов в разы будет меньше
Рекомендую хранить адрес хоста не в settings.ini, а в app.config, в Settings проекта.
EDIT: вообще парсер settings.ini подозрительно напоминает велосипед.
здесь ошибка.
должно быть аля new StreamReader(Path.Combine(Path.GetDirectory(Application.ExecutablePath "settings.ini";
EDIT: вообще парсер settings.ini подозрительно напоминает велосипед.Это он и есть. Причем убогий, с колесами непонятной формы и жестким сиденьем. Мб когда нить выучу матчасть и перепишу как надо.
должно быть аля new StreamReader(Path.Combine(Path.GetDirectory(Application.ExecutablePath "settings.ini";Да,наверно как то так и должно быть. Я спрашивал как раз о чём то вроде этого.
Оставить комментарий
Alena_08_11
Есть говнобыдлопрога, накиданная мной на c# net 4.0. Она чё то делает, и иногда обменивается с серверной частью, кидая и получая всякое через NetworkStream полученный от экземпляра класса TcpClient, с помощью метода GetStreamЕсли руками запустить из сетевой папки - то все ок, прога нормально обменивается данными с серверной частью.
Если поместить запуск проги в gpo в logon скрипт - то процесс появляется, а вот обмена данных с серверной частью не происходит.
Мне пока что лень вставлять в прогу отладочные костыли, чтобы можно было попытаться понять ситуацию. МБ кто нить просветит в чем могут быть грабли ?