У меня есть сценарий оболочки, который я должен запустить на windows сервере, который является промежуточным сервером. Имя сценария оболочки - 'texteffect'
Я создал командный файл с именем CurveTextEffect.bat, который содержит эту команду
@echo on
SET allParameters=%*
C:\cygwin64\bin\bash --login -c "%allParameters%"
, и я вызываю этот bat-файл с этим кодом в c#
Обратите внимание, что вся строка подготовлена динамически, но окончательная строка выглядит следующим образом
string cmd = "CurveTextEffect.bat texteffect -t 'USA BALL' -S 700x -s outline -e concave -d 0.5 -f Impact -p 29.7286291125 -c '#FFFFFF' -l 0.41289762 -b none 'D:/1.0.0/CurvedImage.png'"
здесь "CurveTextEffect.bat" - это имя командного файла, а "texteffect" - это имя сценария
ProcessStartInfo startInfo = new ProcessStartInfo
{
WindowStyle = ProcessWindowStyle.Normal,
UseShellExecute = true,
FileName = "cmd.exe",
WorkingDirectory = Environment.CurrentDirectory,
Arguments = string.Format(@"/C " + cmd),
CreateNoWindow = false
};
try
{
using (Process process = new Process())
{
process.StartInfo = startInfo;
process.EnableRaisingEvents = true;
process.Start();
process.WaitForExit();
}
}
catch (Exception ex)
{
// Log message in logger
// Log the parameters and the enviournment path in the logger
_context.Logs.Add(new Logs()
{
LogMessage = ex.Message,
CreatedOn = DateTime.UtcNow,
LogLevel = Enum.GetName(typeof(LogLevel), LogLevel.Error)
});
}
Когда я вручную запускаю этот сценарий оболочки на сервере в терминале cygwin, он работает нормально Даже когда я вызываю этот bat-файл с аргументами, он отлично работает
Когда я вызываю терминал cygwin на сайт IIS, который установлен на windows сервере через приведенный выше код c#, он не будет работать
Я также проверил журналы IIS, где написано, что texteffect не имеет такой команды
Я также настроил путь cygwin и sh ellscript в переменных окружения, как указано здесь, но затем также говорится, что команда не найдена: как сделано здесь
Может кто-нибудь помочь мне в этом?
Я следовал шаги, описанные здесь для установки Cygwin с URL-адресом ImageMagick: - http://im.snibgo.com/cygwin.htm
Когда я запускаю его на локальном IIS, он работает нормально, но при развертывании на стадии установки сценария оболочки не run
Можно ли как-то определить, что сценарий оболочки выполняется на промежуточном windows сервере или нет?
Windows версия на промежуточном сайте: Windows Server 2016 Datacenter I Я использую эту версию ImageMagick-6.9.8-4-Q16-x86-dll.exe ImageMagick
Это мои настроенные пути в переменных среды
C:\cygwin64\bin
C:\cygwin64\usr\local\bin
D:\MyScripts