现在位置首页 / 项目实战 /正文

IIS7+asp.net: the process cannot access the file because it is being used by another process

作者: IT小兵 | 2015年3月19日| 热度:℃ | 评论: |参与:

昨天系统升级,今天早上一来就有人给我反馈问题,说一个页面打不开了。艹,程序员容易吗?一上班就得接受bug!

Server Error in '/' Application.
The process cannot access the file 'D:\tjh\Kaitone.CommunityEBusiness.Web\Page\Shop\info.aspx' because it is being used by another process.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
Exception Details: System.IO.IOException: The process cannot access the file 'D:\tjh\Kaitone.CommunityEBusiness.Web\Page\Shop\info.aspx' because it is being used by another process.
Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace: 
[IOException: The process cannot access the file 'D:\tjh\Kaitone.CommunityEBusiness.Web\Page\Shop\info.aspx' because it is being used by another process.]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +12902823
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) +2481
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +229
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) +102
   System.Web.Hosting.MapPathBasedVirtualFile.Open() +105
   System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) +256
   System.Web.UI.TemplateParser.Parse() +11438202
   System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() +135
   System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +189
   System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +265
   System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +46
   System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +580
   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +619
   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +203
   System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +189
   System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +56
   System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +42
   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +549
   System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +193
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1025

我开始以为程序出错了,是不是没有编译完成就部署了?然后也参考很多网上的资料,有得说是端口占用,有的说被木马了。

今天重新启动机器后发现IIS不能启动。在IIS 管理器里面启动IIS服务的时候出现以下错误

The process cannot access the file because it is being used by another process.

到网络上查找相关的错误均无法解决。在重新启动之前发现IIS完全正常.经过一番分析,否定了IIS被破坏的可能,因为没有中毒。

觉得有可能是IIS端口被占用引起。在cmd窗口状态下使用命令查看到底是谁占用了IIS 80 的端口. cmd> netstat  -anb >C:\1.txt (说明:因为是windows 2003 server  ,进程比较多,窗口下看起来不方便,输出到c盘根目录的1.txt)

打开看了一下,发现一个进程peer.exe占用了80端口。

xml 代码
   1. Proto  Local Address          Foreign Address        State           PID   
   2.  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2356   
   3.  [peer.exe]

用进程管理器查看

以前安装过一个软件 RaySource ,用来下载网盘的。结束这个进程,IIS终于可以启动了,Yeah!

 


最后发现问题之后,郁闷死了!竟然是info.aspx这个文件一直在Copy过程中,没有覆盖成功!

弱智的问题。

点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

抢天猫双11红包
推荐使用阿里云服务器
echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询