Невозможно записать в файл внешние вызовы DLL из VB6 - PullRequest
0 голосов
/ 28 мая 2019

Я исправляю некоторый устаревший код VB6, который должен вызывать внешнее приложение COM .tlb .NET из программы VB6. Приложение .NET регистрирует данные в csv в бесконечном цикле, а также использует Trace для предоставления сообщений об ошибках и ошибках. Если я тестирую свой внешний регистратор .NET самостоятельно, он создает файлы журнала данных и работает без сбоев без каких-либо ошибок. Но когда он вызывается из клиента VB6, он не генерирует ни одного из моих файлов журнала, но все равно работает в цикле вечно.

Мне интересно, что может вызвать сбой программы для создания файлов и начала регистрации.

Я включил константу TRACE в настройках проекта

Я всегда работаю от имени администратора

Я искал в каждой папке файлы журналов.

DLL и TLB файлы зарегистрированы

Я попытался сохранить файлы по относительным путям, без пути или Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); Но никто не создает файлы

public string header = "Time,Channel1,Channel2,Channel3,Channel4,Channel5,Channel6,Channel7,Channel8,Channel9,Channel10,Channel11,Channel12,Channel13,Channel14,Channel15,Channel16\r\n";

Trace.Listeners.Add(new TextWriterTraceListener("MemoTracelog " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"));
Trace.AutoFlush = true;
try
{
    fs = new FileStream("MemoLog " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv" , FileMode.Create, FileAccess.Write);
    fs.Write(Encoding.ASCII.GetBytes(header), 0, header.Length);
}
catch (System.IO.IOException)
{
    WriteTraceLine("Couldn't open file for write. Use admin privileges and ensure file is not in use.");
}
public void WriteTraceLine(string whatToLog)
{
    Trace.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " " + whatToLog);
    Console.WriteLine(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + " " + whatToLog);
}   

Никаких ошибок. Просто запускается, но не создает никаких файлов.

...