C#代碼使用Process.Start運行本地保存在運行代碼的相同PC上的exe文件。在Visual Studio中,這個工作正常,exe被調用並彈出cmd窗口。一旦exe完成,控制然後傳回給C#調用應用程序。但是,一旦Web應用程序發佈到本地IIS,將應用程序池標識設置爲自定義帳戶,就不再有效。這個exe在任務管理器中可以看作是一個正在運行的進程,但是cmd窗口不會彈出來向用戶表明它正在運行。 try/catch塊沒有捕獲任何錯誤。應用程序池標識確實有權運行該exe。我如何確保cmd窗口在IIS中可以被用戶看到,就像在Visual Studio中一樣?運行exe的ASP.NET Web應用程序在VS中工作,而不在IIS中
回答
微軟不建議從Web應用程序調用.exe,因爲w3wp.exe出於安全原因在沙盒環境中運行,因此它啓動的任何線程/任務/進程與啓動時的啓動方式不同它自己,因此可能無法按預期工作。
您可能希望將控制檯應用程序重新編碼爲ASP.NET Web API(以前稱爲WCF),可能託管在IIS或Windows服務中。
Web API不是WCF。他們是完全不同的技術。 https://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx –
Web API是舊版皁基技術的延續。這並沒有改變我的答案的重點,但感謝指出新的vs舊的... – IrishChieftain
好吧,感謝您的意見,這是一個失望,因爲我不那麼熱衷於重新寫所有!... – LeedsWalker
我使用JavaScript解決了這個問題。我在我的按鈕中添加了一個「OnClientClick」事件,並啓動了我的javascript功能。這個函數創建了一個新的ActiveXObject,然後運行有問題的文件。這現在可以通過IIS成功運行。
如果它運行在JavaScript它可能運行在客戶端而不是服務器上。這可能不會在鎖定的客戶端上運行。 –
- 1. 在web應用程序中運行exe
- 2. 在IIS上運行時,ASP.NET Web應用程序中的模擬不起作用
- 3. Web應用程序工作在VS開發服務器,但不工作在IIS
- 4. ASP.NET MVC 2應用程序在VS中運行,但在IIS上運行錯誤
- 5. ASP.Net Web應用程序安全不工作在IIS 7上?
- 6. 應用程序在IIS或VS web服務器下運行
- 7. 在應用程序中運行.Exe
- 8. 問題在iis 7下運行web應用程序asp.net mvc 3
- 9. ASP.NET Web應用程序在IIS 7(Windows Server 2008)中工作不正確
- 10. 從ASP.NET應用程序(IIS 7,5)運行控制檯應用程序(.exe)
- 11. 運行無IIS的asp.net應用程序
- 12. HttpHandler不能在ASP.NET MVC3 web應用程序中工作
- 13. ASP.NET web應用程序不能在IE10中工作
- 14. 在IIS中運行java web應用程序
- 15. 如何在本地IIS中運行asp.net應用程序
- 16. IIS 6 ASP.NET處理程序不能在虛擬應用程序中工作
- 17. 在vs 2012中啓用asp.net web應用程序中的ajax
- 18. 在VS 2008和IIS中調試現有的ASP.NET應用程序
- 19. 在Asp.Net應用程序中應該運行多少個工作流運行時?
- 20. ASP.NET MVC Web應用程序VS ASP.NET Web應用程序
- 21. 在asp.net web應用程序中連續運行線程
- 22. 如何在ASP.Net web應用程序中運行後臺進程
- 23. 在Eclipse中運行Web應用程序
- 24. 在netbeans中運行web應用程序
- 25. 在ASP.NET Web應用程序(而不是MVC)中的Bundle Transformer
- 26. 只在特定的.EXE內運行web應用程序
- 27. 如何使alasql在我的asp.net web應用程序中工作?
- 28. 在ASP.NET中運行應用程序
- 29. ASP.NET核心路由工作在VS IIS Express中,但不在IIS 10中
- 30. 在IIS中配置ASP.NET應用程序
EXE是否以登錄到Web服務器的用戶身份運行? – mason
iis應用程序池在具有管理員訪問權的自定義用戶帳戶下運行。我也測試了用同樣的用戶登錄到PC上,正如所建議的,不幸的是同樣的問題存在。此用戶有權運行該exe文件。 – LeedsWalker
但是,EXE是否做它需要或不?爲什麼你需要看到CMD窗口彈出? IIS進程不是交互式進程。 –