簡體   English   中英

運行 exe 的 ASP.NET Web 應用程序在 VS 中工作,而不是在 IIS 中

[英]ASP.NET Web application running an exe works in VS, not in IIS

C# 代碼使用 Process.Start 運行本地保存在運行代碼的同一台 PC 上的 exe。 在 Visual Studio 中,這可以正常工作,並且會調用 exe 並彈出 cmd 窗口。 一旦 exe 完成,控制就會被傳遞回 C# 調用應用程序。 但是,一旦將 Web 應用程序發布到本地 IIS,並且應用程序池標識設置為自定義帳戶,這將不再起作用。 exe 可以在任務管理器中查看為正在運行的進程,但是 cmd 窗口不會彈出以指示用戶它正在運行。 try/catch 塊不會捕獲任何錯誤。 應用程序池標識確實具有運行 exe 的權限。 我如何確保 cmd 窗口對 IIS 中的用戶可見,就像在 Visual Studio 中一樣?

Microsoft 不建議從 Web 應用程序調用 .exe,因為 w3wp.exe 出於安全原因在沙盒環境中運行,因此它啟動的任何線程/任務/進程都與您自己啟動時不同,因此可能無法按預期工作。

您可能希望將控制台應用程序重新編碼為 ASP.NET Web API(以前稱為 WCF),可能托管在 IIS 或 Windows 服務中。

類似的問題

我通過使用 JavaScript 解決了這個問題。 我向我的按鈕添加了一個“OnClientClick”事件,這啟動了我的 javascript 函數。 此函數創建了一個新的 ActiveXObject,然后運行相關文件。 這現在可以通過 IIS 成功運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM