0

我有一个 DLL,它是我的应用程序正在使用的GAC'ced( ) ,出于某些要求,我更改了该 DLL 中的一个函数,并且:c:\windows\assemblyBiztalk

  1. GAC我卸载了(版本 1.0.0.0)中的旧 DLL
  2. GAC将新构建的 DLL 转换为GAC(版本 1.0.0.0)
  3. 我还重新启动了BizTalk主机实例。

但输出似乎仍然来自旧 DLL 的函数。我没有得到问题,为什么我仍然得到旧的输出。

有谁能够帮我?

4

4 回答 4

3

一些可能有用的提示:

(1) 如果您的群组中有多个 BizTalk 服务器,请务必更新所有服务器!根据您的主机实例配置,您的实例可以在主机实例处于活动状态的任何服务器上运行。

(2) 确保重新启动正确的 biztalk 主机实例。这常常被忽视。不要忘记 BizTalk 隔离主机!如有必要,执行特定 IIS 应用程序池的回收。如果您不确定,请执行 iisreset.exe

(3) 要更新 BizTalk 中的 DLL,通常需要在 BizTalk 数据库中更新它。对于某些更改,它可能只更新 GAC 中的 DLL,但我经常发现这还不够(尤其是在编排中)。

于 2013-07-11T08:30:11.830 回答
1

你在这里描述的是正确的。您应该会看到新的 DLL 接管。有几件事要检查:

  1. 您是否回收了正确的主机实例?
  2. 您是否回收了所有服务器上的主机实例?
  3. 您是否验证了 GAC 的 DLL 上的创建日期以确保安装了新的?

另一个问题可能基于您在应用程序中所做的更改。您只能在特定情况下 Gac/Restart。在 Jon Flander 的博客上看到这个你什么时候可以重新 gac 并重新开始以供参考。

于 2009-05-05T13:13:09.050 回答
0

If you want to be really sure that the correct assembly that has been GAC:ed, click "Run" and type "%systemroot%\assembly\gac" for .Net 1.1 or "%systemroot%\assembly\gac_msil" for > 2.0.

There you have the physical files for each version number to be checked (or overwrited).

It might help us support you if you let us know what part of BizTalk you are using the assembly, pipeline, functoid, schema etc.

于 2009-05-05T15:20:48.837 回答
-1

该 DLL 是在 BizTalk 进程 (BTSNTSvc.exe) 下使用还是由独立主机实例使用?

如果此 DLL 用于接收处理程序(主机)被隔离的接收位置,例如 SOAP 接收位置,则必须从 IIS 而不是主机实例重新启动应用程序池。

于 2017-08-03T19:49:34.117 回答