错误消息: 无法访问文件 AssemblyName,因为它正由另一个进程

文章翻译 文章翻译
文章编号: 810281 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

在您更新正在接收请求的 Web 服务器上的 ASP.NET 内容后,您可能会在浏览器中收到以下错误消息:
在服务器错误 /AppName 应用程序。
--------------------------------------------------------------------------------
配置错误
说明: 该请求提供服务所需的配置文件的处理过程中时发生错误。请检查以下特定错误详细信息,并适当地修改您的配置文件。

分析器错误消息: 可以不访问文件 AssemblyName 因为它正由另一个进程使用。

源错误:

行 197: <add assembly="System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198: <add assembly="System.EnterpriseServices, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 199: <add assembly="*"/> 行 200:</assemblies>
行 201:

源代码文件: c:\ WindowsDirectory \microsoft.net\framework\v1.0.3512\Config\machine.config 行: 199


如果您在更新会导致更改通知 (如 Web.config、 Global.asax,和 bin 文件夹中的文件) 的多个文件,可能会出现此问题。当在两个连续的更改通知之间有请求时,它们会导致重新多次同时装入 AppDomain。

在扫描时锁定文件夹在服务器上使用的程序时,也可能会出现类似问题。此类程序的示例有病毒程序、 索引的程序和备份程序。

原因

当您更改的原因更改通知文件时,该 AppDomain 重新加载在下一个传入请求。发生这种情况时 Aspnet_wp.exe 进程锁定 Program / Shadow Copy 文件夹 (位于临时 ASP.NET 文件文件夹中),能够安全地复制新版本的程序。

如果发生这和新的请求再次,汇集在 AppDomain 重新加载,然后尝试将该程序的另一个新版本复制到卷影复制文件夹,而该文件夹已被第一个 AppDomain 锁定时更改另一个文件重新加载。

解决方案

此修补程序是.net Framework 1.1 的一部分。

现在提供 Microsoft,受支持的修复程序,但它只用于解决本文所述的问题。仅将它应用于出现这一特定问题的系统。此修补程序可能还会接受进一步的测试。因此,如果此问题没有对您造成严重的影响,我们建议您等待包含此修复程序将下一个.net Framework 1.0 服务包。

要立即解决此问题,请与 Microsoft 产品支持服务以获取此修复程序。有关 Microsoft 产品支持服务电话号码和关于支持费用的信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意 在特殊的情况中如果 Microsoft 支持专业人员确定某个特定更新才能解决您的问题,可能会被取消通常会导致支持电话的费用。将正常收取支持费用将应用于其他支持问题和不需要进行专门更新的问题。

注意若要解决此问题,您可能还使用.net Framework 1.1。

注意若要解决此问题、 安装在的修复程序,然后在"更多信息"部分中配置的设置。

此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
  Date         Time   Version       Size       File name
  --------------------------------------------------------------
  14-Nov-2002  04:12  1.0.3705.377    196,608  Aspnet_isapi.dll
  14-Nov-2002  04:06                    4,169  Aspnet_perf.h
  14-Nov-2002  04:06                   20,468  Aspnet_perf.ini
  14-Nov-2002  04:06                   20,342  Aspnet_perf2.ini
  14-Nov-2002  04:12  1.0.3705.377     24,576  Aspnet_regiis.exe
  14-Nov-2002  04:12  1.0.3705.377     28,672  Aspnet_wp.exe
  14-Nov-2002  01:42  1.0.3705.377     69,632  Corperfmonext.dll
  14-Nov-2002  16:17  1.0.3705.377  1,953,792  Mscorlib.dll
  14-Nov-2002  01:33                   10,256  Mscorlib.ldo
  14-Nov-2002  01:41  1.0.3705.377  2,269,184  Mscorsvr.dll
  14-Nov-2002  01:41  1.0.3705.377  2,269,184  Mscorwks.dll
  02-Aug-2002  03:38                       15  Smartnav.htm
  17-Oct-2002  23:55                    8,728  Smartnav.js
  29-Jan-2002  00:13                    7,003  Smartnavie5.js
  14-Nov-2002  16:18  1.0.3705.377  1,191,936  System.web.dll
				

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
此修补程序更改在 ASP.NET 中以下行为:
  • 5 秒钟现在只缓存配置错误。
  • 根据在 <httpruntime>部分在 Machine.Config 在以下两个属性的值组合文件更改通知
    • waitChangeNotification-重新启动一个新的请求将触发一个 AppDomain 之前等待下一次更改通知的秒数
    • maxWaitChangeNotification-最大秒数从第一个更改通知之前在新请求重新加载该 AppDomain
    例如:
    <httpRuntime waitChangeNotification="5" maxWaitChangeNotification="10">
    这两个参数的默认值为 0
    请注意您在使用默认值时您仍看到"症状"部分中描述的问题。

    以下是属性的建议的值:
    • waitChangeNotification 设的秒数,超过了可通过两个副本中的更改通知文件的更新之间的秒数。
    • maxWaitChangeNotification 设的秒数,超过了要完成复制/部署过程的时间长度。
    由于这一更改的内容可能会出现缓存如果副本/部署的过程后立即查看它。这是典型行为。当您使用上一个参数指定在等待期限已过,所做的更改生效。
  • 10 秒钟后一个 initializationerror 发生在 HttpRuntime,该 AppDomain 关闭。
  • 实际的配置错误现在存储在该 InnerExceptionHttpException 对象。

属性

文章编号: 810281 - 最后修改: 2007年2月19日 - 修订: 6.5
这篇文章中的信息适用于:
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.1
关键字:?
kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB810281 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 810281
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com