Я новичок в C #, ASP.NET MVC и программировании в целом.Во время стажировки получил задание написать веб-приложение, которое позволит людям запускать сценарии с расширением .exe / .lnk на удаленном сервере и получать уведомления о завершении.
Я провел исследование, но на данный момент полностьюзастрял со следующей проблемой.Само задание создает много технических вопросов, но я постараюсь сузить его до двух:
Кнопка не запускает контроллер.Для создания таблицы используется https://datatables.net/. Браузер не выдает никаких проблем при рендеринге.Кроме того, этот код вырезан из фактической таблицы:
$(document).ready(function () {
dataTable = $("#interfaceTable").DataTable({
"ajax": {
"url": "/Interface/GetData",
"type": "GET",
"datatype": "json"
},
"columns": [
{
"render": function () {
return "<a class='btn btn-outline-dark btn-sm' onclick= location.href = '@Url.Action("InterfaceRuntime", "Interface")'><i class='fas fa-play-circle'></i> Run</a>";
},
],
});
});
Если я пытаюсь получить доступ к контроллеру, напрямую передавая URL (Localhost: ~ / Interface / interfaceruntime), то браузер выдает исключение:
[HttpGet]
public ActionResult InterfaceRuntime()
{
ProcessStartInfo Info = new ProcessStartInfo()
{
FileName = @"C:\Users\Some.User\Hardcode\Path\to\a\file.exe",
UseShellExecute = false,
CreateNoWindow = true,
LoadUserProfile = true,
};
Process InterfaceProcess = new Process();
try
{
InterfaceProcess.StartInfo = Info;
InterfaceProcess.Start();
InterfaceProcess.WaitForExit();
return Json(new { success = true, message = "Executed successfully"}, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json(new { success = false, message = e });
}
}
Само исключение:
[InvalidOperationException: This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.]
Кажется, что веб-запрос заблокирован где-то еще и не имеет ничего общего с запросом Json.Был бы признателен за любую помощь с этим.