“另一個程序正在使用此文件,進程無法訪問”的解決方法


“另一個程序正在使用此文件,進程無法訪問”的解決方法

啟動IIS時提示“另一個程序正在使用此文件,進程無法訪問。(異常來自HRESULT:0x80070020)”

  (the process cannot access the file because it is being used by process. )

  非常典型的端口沖突所致,一般IIS7都是80端口的,但是會有哪些進程會利用80端口呢?

  解決方法:

  IIS中網站服務所占用的是80端口,出現這樣的提示我們可以判定是端口沖突造成的,故,查看真正運行的占用80端口的程序,在“運行”輸入“cmd”,進入命令行,輸入netstat -abn > c:/port80.txt此命令既是查詢當前運行的程序所占用的端口狀況,然后到c盤port80.txt文件中找到占用80端口的程序pid,記下pid。打開任務管理器,點擊“查看”,選擇列,勾選“PID(進程標識符)”,然后單擊“進程”標簽,找到80端口對應的pid,就可以看到是那個程序占用的了,更改這個程序的port,再重啟這個程序,使更改生效。

  再次啟動iis,一切ok。

  備注:

  查看80端口信息中的PID號,然后打開任務管理器查看對應PID的程序名稱。

  (如果沒有PID列可以點擊“查看”->選擇列...->勾選Pid進程標識符->確定)

  將所有開啟在后台的進程一一關閉,特別指出的是“Foxmail”以及“淘寶旺旺”這兩款軟件估計也會占用80端口,除此之外,其實還有很多第三方的程序喜歡占用80端口,比如迅雷下載以及skype有時會占用80端口,且當迅雷下載占用80端口下載時速率會大幅提升,也許是微軟的蓋茨先生刻意把80端口做的“與眾不同”,也許這也是那些第三方的軟件喜歡占用80端口的原因

  解決方法二:‍

  IIS “另一個程序正在使用此文件,進程無法訪問。”錯誤提示的解2010-06-07 09:23 來源: 作者: 點擊:49964次用IIS管理器啟動網站時,出現“另一個程序正在使用此文件,進程無法訪問。”的錯誤提示。說明 此服務器的tcp 80端口已打開。一般情況下,可能是有另一個WEB服務已啟動,它打開了80端口,另一種可能就是某個軟件打開了80端口。

  如何查看哪個程序打開了tcp 80端口呢?使用“開放端口查看軟件Active ports”就可以一目了然了。我查看了一下我的機器情況,如圖所示:

  從圖上看出原來Skype打開了Tcp 80端口,原來是這個家伙惹的禍,將其關閉。再重啟IIS,一切正常。

  如果在IIS啟動之后再開Skype,Skype仍能正常使用。說明Skype發現tcp 80端口已打開就不再使用此端口了。看來啟動IIS還得有個順序,那就是先啟動IIS再啟動Skype。

  補充:其實Skype可以通過設置不讓其打開80端口的。這樣就不用考慮啟動順序的問題了。具體操作是:Skype 菜單"工具"->"選項"->"連接" 項,去掉“把80端口和443端口作為接入設備的備用端口” 前面的復選框!

  腳本之家編輯補充:

  如果上面的方法還不能解決,下面是個不錯的處理方法:

  win2003下測試。

  看下么的圖。

  上面的圖說明了,我雖然修改了端口,但因為主機頭綁定了域名仍然使用的是80端口,所以不能使用,只要將綁定的域名端口修改一下,或刪除都可以解決。

  其實這個方法的解決,一般不注意的不可能發現這個問題的。其實事件查看器,也是可以幫助我們解決不少問題的。

  開始--程序--管理工具--事件查看器--系統 查找 “w3svc”即可。

 

http://www.safe5.com/news/jishuzixun/20110402/19707.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM