最近用asp.net做webservice,其中有個功能是調用執行外部的exe(類似cmd中執行),但執行Process.Start之后就沒有結果,同樣代碼在winform下正常,折騰兩天終於找到解決方法
本文參考了以下網頁,十分感謝
http://bbs.csdn.net/topics/300053869
http://blog.163.com/qiaoweipeng@126/blog/static/15737970200862331842368/
環境:win7 sp1 64位 以及IIS,vs2010 編譯為x86程序
首先到 服務》IIS Admin Service(雙擊他)》登錄》勾上【允許服務於桌面交互】
然后建立web程序,以【網站】方式建立,建網站后會自動建立對應的應用程序池
選中對應的【應用程序池】,點 【高級設置】,修改其中的【進程模型】》【標識】為 LocalSystem
然后把IIS,IIS Admin Service等重啟,就ok了
PS:網上有的說設了 IIS Admin Service 就可以了,可能有些情況是可以的,大家注意一下
PS2:應用程序池的【標識】,如果LocalSystem不行,那就設【自定義賬戶】,賬戶用管理員賬戶(administrator)
PS3:這樣執行后的效果可能會跟winform桌面程序執行的效果有點不同,例如我調用的exe程序,winform調用后運行時有個命令行窗體一直出現,而webservice調用沒有命令行窗體,但通過 【任務管理器】 可以看到進程是運行着