Запустите exe на стороне сервера ASP.NET
Всем Привет,
У меня есть странное требование от клиента, с которым я боролся в течение нескольких недель.
Клиент имеет автономный exe-файл и веб-приложения, расположенные на сервере Windows 2012. План состоит в том, чтобы включить exe-приложение в веб-приложения, чтобы его можно было визуализировать через браузер или вызывать по гиперссылке. Приложение exe является портативным. Веб-приложения работают на платформе .NET framework 3.5,написанной на языке C#.
Из-за высоких ограничений безопасности на сервере ни одна из моих попыток, похоже, не работает. Когда я нажимаю на кнопку на странице, ничего не происходит.
Сейчас я изучаю возможность доставки exe-приложения конечным пользователям через WebDAV. Любые идеи будут полезны.
Что я уже пробовал:
На web.config я отправил путь.
<appSettings> <add key="EXELOC" value="C:\Temp\addons\"/> </appSettings>
На странице aspx у меня есть кнопка, которая вызывает приложение
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Diagnostics; using System.Configuration; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnStart_Click(object sender, EventArgs e) { string locn = ConfigurationManager.AppSettings["EXELOC"]; Process myProcess = new Process(); try { myProcess.StartInfo.UseShellExecute = True; myProcess.StartInfo.FileName = locn + "Application.exe"; myProcess.StartInfo.CreateNoWindow = true; myProcess.Start(); } catch (Exception ex) { Response.Write(ex.Message); } }
Я также попытался использовать URI:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Ach] @="URL:Ach Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\Ach\DefaultIcon] @="C:\Temp\addons\\Application.exe" [HKEY_CLASSES_ROOT\Ach\shell] [HKEY_CLASSES_ROOT\Ach\shell\open] [HKEY_CLASSES_ROOT\Ach\shell\open\command] @="\"C:\\Temp\\addons\\Application.exe\" /u \"%1\""
Я также попытался установить приложение UNC и вызвать его через Javascript:
<script type="text/javascript" language="javascript"> function RunFile() { WshShell = new ActiveXObject("WScript.Shell"); WshShell.Run("\\\\192.168.5.8\\Applications\\Application.bat", 1,false); } </script>
Richard MacCutchan
Но во всех случаях это приложение будет работать на сервере.
ZurdoDev
Как он и сказал. ^ Это означает, что вы должны загрузить его на клиент, если хотите, чтобы он выполнялся на клиенте.
Noel Simela
Я думаю, что это было бы альтернативой.