2010-02-22 89 views
3

我有一个ASP.NET web应用程序,其中包含/ bin文件夹'Example.dll'中的一个DLL。如果我没有提及Web.config中的'Example.dll',是否可以安全地将它替换为较新版本的'Example.dll',并且应用程序会使用它?什么是更新ASP.NET Web应用程序DLL的最佳方法?

如果不是,需要哪些步骤?

回答

4

是的,这是安全的(假设您已经小心并且没有做任何重大更改),但是这里有一个我从痛苦经历中学到的提示:不要在同一文件夹中备份旧版本。即使您将其重命名为Example.dll0,它仍可能会混淆框架。

此外,这样做会重新启动应用程序。

+0

根据我的经验,这可能很容易导致一个'FileLoadException',并带有消息“无法加载文件或程序集或它的一个依赖项。”定位的程序集清单定义与程序集引用不匹配。事实上,我刚刚在尝试更换DLL时遇到过这种情况,最终不得不重新部署整个应用程序。我认为这取决于您的部署策略。例如,这种情况下的应用程序是预编译的。 – 2010-02-22 21:31:41

+0

我从来没有经历过,乔希和我的所有应用程序都是预编译的。但是,我猜如果它是在一个进程的中间,并且它(无论出于何种原因)想要在回收应用程序之前完成,可能会发生。一旦应用程序重新启动,我不明白为什么它会查找旧的DLL。 – pdr 2010-02-22 21:40:24

+0

我放入新DLL(没有会导致编译错误的更改),并且我的应用程序完全停止工作,并且事件查看器有几条消息(每个后续请求一条消息)。重新部署整个应用程序解决了问题。星期五刚刚发生在我身上。 – 2010-02-22 22:04:57

1

替换DLL将触发应用程序域(整个Web应用程序)重新启动,任何使用此DLL的代码将在重新启动时使用新版本。当前对旧的请求将完成,然后关闭。

所以不需要额外的步骤,只需要知道应用程序将重新启动。

相关问题