我有一個ASP.NET Web角色,它在調用特定Controller方法時生成的聲音文件上運行音頻效果實用程序。我完全理解如何使用Process對象來執行進程,設置工作目錄,等待退出並檢查退出代碼。從ASP.NET應用程序執行進程時需要考慮的目錄?
這裏是我的具體問題:
如果我有它在我的ASP.NET項目文件夾中的依賴性,什麼我需要做的,使它們被放在一個沿EXE文件將Web角色發佈到Azure時的非公共目錄?或者它們是否作爲已發佈軟件包的一部分複製到網站上?如果是這樣,我如何獲得EXE文件的最終位置?我假設我不能通過一個沒有修飾的「//.exe」路徑來引用EXE。換句話說,我需要知道如何處理EXE文件和依賴關係(如果有的話),以便它正確運行,並且我需要知道在發佈的目錄結構中的哪個位置可以找到它,以便我可以將該信息傳遞給Process對象的StartInfo屬性。
是否有任何web.config文件更改我需要做或目錄權限設置我需要更改以使其工作?
注:我知道從ASP.NET線程由於可擴展性和超時的問題運行的進程的需要注意的地方:
Launching new process from ASP.NET
然而,大多數的時間實用程序不需要運行,因爲Controller方法返回的大多數聲音文件已經生成,並且正從數據庫的BLOB字段中提取。另外,我已經對轉換進行了計時,並且使用單個內核在最差情況下運行大約需要200到500毫秒。
有沒有把這些文件是「www」的樹之外,公開提供文件的目錄下的一個文件夾的方式? –
有,但您需要手動將文件複製到那裏。自然發佈流程不會在基本網站路徑之外執行任何操作。另外,從asp.net訪問這些文件夾可能是一個問題,因爲您需要設置顯式權限。並且還需要知道主機Web服務器的文件系統路徑..最後會變得棘手。 –
謝謝。整蠱正是我想要避免的。 –