У меня есть приложение C#, использующее 32-битные библиотеки DLL, которые работают вполне нормально. Но когда я вызываю C#

Место общения программистов C#
Ответить
Anonymous
 У меня есть приложение C#, использующее 32-битные библиотеки DLL, которые работают вполне нормально. Но когда я вызываю

Сообщение Anonymous »

У меня на сервере установлено консольное приложение C# (.NET Framework 4.7.2), которое использует 32-разрядные библиотеки для связи с промышленными ПЛК. Приложение работает вполне нормально, когда я запускаю exe напрямую. На сервере всего лишь несколько % дополнительного потребления ресурсов ЦП и памяти.
Но когда я запускаю exe-файл из серверного приложения Blazor, которое работает на том же сервере, exe-файл запускается, но я получаю в диспетчере задач сразу появляется множество строк под названием
"MS AFX ищет стандартные библиотеки и примеры проектов (32 бит)"
, что приводит к % 100 потребление памяти всего за несколько секунд. Также мой exe не выполняется. Когда я смотрю на средство просмотра событий, как ни странно, в момент запуска моего exe-файла для моего серверного приложения Blazor ошибок не возникает.
В чем может быть причина?
Вот мой exe-код:

Код: Выделить всё

using S7HCOM_XLib; //my 32 bit libraries
using SimaticLib;  //my 32 bit libraries

namespace TestS7Command
{
internal class Program
{
static void Main(string[] args)
{
try
{
int retcode = 0;
ISimatic4 S = new Simatic();
IS7Project3 Pro;
S.UnattendedServerMode = true;
Pro = (IS7Project3) S.Projects.Add("Test8", "C:\\temp", S7ProjectType.S7Project); // I open here an empty PLC project
Pro.UploadStationEx(0,2,"2","MPI",retcode); I download the project from the PLC to my empty project

}
catch (Exception ex)
{
using (StreamWriter sw = File.AppendText((@"C:\temp\log.txt")))
{
sw.WriteLine("Error: " + ex + " " + Convert.ToString(DateTime.Now));
}
}
}
}
}
Вот мой код razor.cs, в котором я запускаю exe

Код: Выделить всё

    public void Start_Exe_Program()
{
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = path_of_exe,
CreateNoWindow = false, // Set to false to show the window
WindowStyle = ProcessWindowStyle.Hidden,// Set the window style to Normal

};

Process process = new Process
{
StartInfo = startInfo
};

process.Start();
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... hen-i-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»