[英]Sending SignalR Broadcasts that is running within ASP.NET MVC Application from a Windows Service on the same server
[英]Sending Data to Running Windows Application from asp.net
我正在嘗試從asp.net網頁將數據發送到以C#編寫的正在運行的Windows窗體應用程序。 從網頁調用應用程序時無法啟動應用程序的問題,但是如果我嘗試從命令行運行它,則該應用程序無法啟動。
這是在asp.net中啟動我的應用程序的代碼部分
protected void Page_Load(object sender, EventArgs e)
{
// ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:connectSocketServer(); ", true);
SecureString sc = new SecureString();
string Source = "*****";
foreach (char c in Source.ToCharArray())
{
sc.AppendChar(c);
}
ProcessStartInfo i = new ProcessStartInfo(@"C:\******\myapp.exe", "test");
i.UserName = "******";
i.UseShellExecute = false;
i.Password = sc;
i.Verb = "runas";
Process p = new Process();
p.StartInfo = i;
p.Start();
}
這是我應用程序中的代碼
static System.Threading.Mutex mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");
[STAThread]
static void Main(params string[] Arguments)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 mf = new Form1();
if (mutex.WaitOne(TimeSpan.Zero, true))
{
Application.Run(mf);
mutex.ReleaseMutex();
}
else
{
MessageBox.Show("only one instance at a time");
mf.SendData(Arguments);
}
}
並在表單中有一個稱為SendData的公共函數,它將處理數據...
因此,如果我從cmd line和Pass參數運行它,則SendData將被執行,但是從網頁無法正常運行...
注意:我刪除了IWAP用戶下應用程序在任務管理器上看到的用戶名和密碼信息,但不顯示表格 。
經過測試,希望可以解決您的問題,使用Try Catch塊是一個好習慣
protected void Page_Load(object sender, EventArgs e)
{
SecureString sc = new SecureString();
string Source = "*****";
foreach (char c in Source.ToCharArray())
{
sc.AppendChar(c);
}
sc.MakeReadOnly();
try
{
ProcessStartInfo i = new ProcessStartInfo(@"C:\******\myapp.exe", "test");
i.Domain = "*****";
i.UserName = "*****";
i.UseShellExecute = false;
i.CreateNoWindow = true;
i.RedirectStandardOutput = true;
i.Password = sc;
i.Verb = "runas";
Process p = new Process();
p = Process.Start(i);
}
catch (Win32Exception w32E)
{
// Display Some Message
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.