Я не знаю сторону ASP.NET проблемы, но.NET имеет довольно мощный класс: Система. Глобализация. CultureInfo. Можно использовать следующий код для парсинга строки, содержащей двойное значение:
double d = double.Parse("100.20", CultureInfo.CurrentCulture);
// -- OR --
double d = double.Parse("100.20", CultureInfo.CurrentUICulture);
, Если ASP.NET так или иначе (т.е. заголовки Запроса HTTP использования) передает CultureInfo текущего пользователя любому CultureInfo. CurrentCulture или CultureInfo. CurrentUICulture, они будут хорошо работать.
Я только что нашел решение здесь в ответе Stackoverflow.
Замените
sys.stderr = sys.stdout = logFile = open( tmpLogFileName, 'a' )
на
sys.stderr = sys.stdout = logFile = open( tmpLogFileName, 'a', 0 )
Это говорит python не назначать выходной буфер для файла.
Почему вы печатаете в stderr? Если подпроцесс пишет в stdout, пока вы пишете в stderr, это может объяснить странное чередование.