C# 切换dll文件是否足以更新已发布的ASP.NET应用程序?

C# 切换dll文件是否足以更新已发布的ASP.NET应用程序?,c#,asp.net,dll,C#,Asp.net,Dll,我在服务器上有一个ASP.NET应用程序,目前无法再次编译(直到完成一些修复)。同时,如果我能更新它使用的.dll,那就太好了。 因此,已发布服务器上的应用程序bin文件夹如下所示(名称为缩写): 现在,我的一位同事说,我应该将funcdll1.dll与同一dll的新版本(myapplciaiton.dll使用的函数相同,但这些函数的底层(集成到其中的外部dll)是全新的)进行切换 因此,我尝试关闭dll,停止应用程序池并再次启动它,但似乎对已执行的程序没有任何更改(它仍以旧方式运行)。“旧方式

我在服务器上有一个ASP.NET应用程序,目前无法再次编译(直到完成一些修复)。同时,如果我能更新它使用的.dll,那就太好了。 因此,已发布服务器上的应用程序bin文件夹如下所示(名称为缩写):

现在,我的一位同事说,我应该将funcdll1.dll与同一dll的新版本(myapplciaiton.dll使用的函数相同,但这些函数的底层(集成到其中的外部dll)是全新的)进行切换

因此,我尝试关闭dll,停止应用程序池并再次启动它,但似乎对已执行的程序没有任何更改(它仍以旧方式运行)。“旧方式”是数据库命令不起作用,因为数据库的密码已更改(在新的.dll中更正)

现在我想知道这样做是否可行?或者我是否做错了什么

编辑: 正如有人问的那样:应用程序本身是一个Web服务,非asp.net程序连接并执行函数,然后返回结果(当然都是通过https)。

密码直接在.dll中,没有任何web.config文件(据我所知,.dll中还有一些强制优化)。

简单的dll替换应该可以工作。 还有一个问题是如何“关闭dll”。
不要复制或重命名它。请粘贴“新建”并选择“覆盖”。
如果需要备份,请将“bin”文件夹存档。

此外,iisreset或服务器重启可能是一个尝试选项(尽管不需要).

为什么要在DLL中嵌入数据库密码可能是更重要的问题…您能否提供应用程序的更多详细信息,web应用程序?web.config中的密码?是否清除了缓存?我认为这取决于如何集成您的应用程序,例如,如果您通过配置文件而不是cr使用依赖项注入在代码中使用它们,只需更改具有名称的配置文件即可,因为所有内容都已正确插入,在其他情况下,如果依赖项和方法有新的重载,则需要编译代码。更改webconfig并保存它,具有重新启动应用程序的相同效果。一旦IIS注意到您的配置发生更改,我将t停止应用程序并重新启动,然后您可以检查更改是否生效effect@masonpw直接位于.dll本身(设计选择不是我的)。我只是为了完整起见才提到它的主要区别是什么(除了更新的代码).I重写并停止/启动了应用程序池,但没有执行iisreset。这一点很好!明天将尝试执行该操作。tnx.no很遗憾没有工作(尝试了它,包括iisreset)。不确定是否已修复。您可以尝试创建一个myapplication.config xml文件,并将其放在bin文件夹中(更改名称和版本号).myapplication.dll funcdll1.dll funcdll2.dll