請原諒缺少示例代碼。我有一個.bat文件,它執行後臺進程,刷新我正在設計的網頁上的圖形。我可以使用調度應用程序自動運行此過程,但我想給用戶手動控制權。我想要一個網頁上的按鈕,用戶可以點擊在服務器上運行.bat文件。我在一個aspx文件中編寫html和C#。
我試過到目前爲止是:
<a href='program.bat'> Refresh </a>
顯然,這並不工作:當我點擊「刷新」我的IE瀏覽器,選擇「運行」的文件下載到臨時文件的文件夾在我的本地驅動器上,並嘗試在那裏執行。
請原諒缺少示例代碼。我有一個.bat文件,它執行後臺進程,刷新我正在設計的網頁上的圖形。我可以使用調度應用程序自動運行此過程,但我想給用戶手動控制權。我想要一個網頁上的按鈕,用戶可以點擊在服務器上運行.bat文件。我在一個aspx文件中編寫html和C#。
我試過到目前爲止是:
<a href='program.bat'> Refresh </a>
顯然,這並不工作:當我點擊「刷新」我的IE瀏覽器,選擇「運行」的文件下載到臨時文件的文件夾在我的本地驅動器上,並嘗試在那裏執行。
如果您希望批處理文件在服務器上運行,那麼您將不得不從C#代碼中調用它,而不是在HTML中。
有很多方法可以做到這一點。最簡單的是有一個從OnLoad
調用它的aspx頁面,讓我們說update.aspx:
<script runat="server">
protected override void OnLoad(EventArgs e)
{
System.Diagnostics.Process.Start(@"c:\path\to\program.bat");
}
</script>
那麼你的HTML有一個定期<a href="update.aspx">
標籤。
當然,它也可以作爲一個按鈕按回傳等。重點是它是在服務器端,在一些代碼隱藏。
這讓我走上正軌,謝謝。雖然bat文件仍然沒有執行。我懷疑這可能是一個權限問題,而不是您提供的代碼的問題。 – Aaron 2013-03-15 19:23:40
是的,通常在服務器上運行進程的更具挑戰性的部分是獲得正確的權限。祝你好運! – 2013-03-16 02:02:23
您使用的是什麼Web服務器? IIS我認爲? – Brad 2013-03-14 18:05:43
是的,我使用的是IIS。 – Aaron 2013-03-15 19:22:24
直接運行進程可能有一個超級基本的CGI包裝器。否則,你可以寫一些C#來完成它,就像Nate所說的那樣。 – Brad 2013-03-15 19:30:59