[英]How can I launch an executable from an IIS-hosted WCF service?
我們有一個WCF服務,我們最近從自托管切換到IIS托管。 它需要使用Process.Start()啟動可執行文件。 這在自托管時工作正常,但在IIS中托管時,我們收到錯誤:
System.ComponentModel.Win32Exception:系統找不到指定的文件
我們在bin目錄和應用程序根目錄中都有exe(在.svc文件旁邊。)但是,它似乎無法找到exe。
任何幫助,將不勝感激。 謝謝!
編輯:我忘了提到我們正在使用以下代碼啟動:Process.Start(“LeakingWrapper.exe”);
更進一步的信息:不幸的是,我們沒有將exe切換到dll的選項,因為它正在包裝泄漏內存的第三方庫。 因此,我們必須將其置於自己的流程中,以確保我們長期運行的WCF服務不會泄漏!
您是否將aspNetCompatibilityEnabled
設置設置為true? 在這種情況下,你有一個HttpContext
,它可以嘗試用來調用類似的東西:
string exeFileName = HttpContext.Current.Server.MapPath("~/LeakingWrapper.exe")
或者:如果指定EXE的整個路徑,例如,該怎么辦?
Process.Start("C:\yourServiceDir\bin\LeakingWrapper.exe")
這些幫助有用??
渣
要使用HttpContext
使用Web服務的路徑,必須在Web服務的web.config中包含以下行
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
</configuration>`
marc_s答案可能是正確的。
但是,也可能是進程無法找到該文件,因為它沒有讀取exe文件的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.