BizTalk Server 2006 R2 未使用最近的“GAC”ced dll
我有一个 DLL,它是 GAC
'ced (c:\windows\assemble
),我的 Biztalk
应用程序正在使用它,以满足某些要求,我更改了该 DLL 中的一个函数,并且:
- 我卸载了
GAC
(版本 1.0.0.0)中的旧 DLL - 我将
GAC
'ced 到了GAC
中>GAC(版本 1.0.0.0) - 我还重新启动了
BizTalk
主机实例。
但输出似乎仍然来自旧的 DLL 函数。 我没有遇到问题,为什么我仍然得到旧的输出。
有谁能够帮助我?
I have a DLL which is GAC
'ced (c:\windows\assembly
) which is being used by my Biztalk
Application, for some requirement, I changed a function in that DLL and:
- I uninstalled the old DLL which was in
GAC
(version 1.0.0.0) - I
GAC
'ced the newly built DLL intoGAC
(version 1.0.0.0) - I also restarted the
BizTalk
Host Instances.
But still the output seems to be from the old DLL's function. I am not getting the problem, why still I am getting the old output.
Can anybody help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
该 DLL 是在 BizTalk 进程 (BTSNTSvc.exe) 下使用还是由独立主机实例使用?
如果此 DLL 用于接收处理程序(主机)被隔离的接收位置(例如 SOAP 接收位置),则必须从 IIS 重新启动应用程序池,而不是主机实例。
Is that DLL used under a BizTalk process (BTSNTSvc.exe) or by an Isolated Host Instance?
If this DLL is used in a Receive Location which Receive Handler (Host) is Isolated, for example a SOAP Receive Location, you have to restart the Application pool from IIS and not the Host Instance.
一些可能有用的提示:
(1) 如果您的组中有多个 BizTalk 服务器,请务必更新所有服务器!
根据您的主机实例配置,您的实例可以在主机实例处于活动状态的任何服务器上运行。
(2) 确保重新启动正确的biztalk主机实例。 这一点常常被忽视。 不要忘记 BizTalk 隔离主机! 如有必要,请执行特定 IIS 应用程序池的回收。 如果您不确定,请执行 iisreset.exe
(3) 要更新 BizTalk 中的 DLL,通常还需要在 BizTalk 数据库中更新它。 对于某些更改,只需更新 GAC 中的 DLL 即可,但我经常发现这还不够(尤其是对于编排)。
Some tips that might be helpful:
(1) If you have multiple BizTalk servers in your group, be sure to update all of the servers!
Depending on your host instance configuration, your instance may run on any server the host instance is active on.
(2) Make sure you restart the correct biztalk host instance. This is often overlooked. Don't forget about the BizTalk Isolated Host! Perform a recycle of the specific IIS application pool if necessary. If you are unsure, perform an iisreset.exe
(3) To update a DLL in BizTalk it is often necessary to update it in the BizTalk database as well. For some changes it may work just updating the DLL in the GAC, but often I find that this is not enough (especially with orchestrations).
你在这里描述的是正确的。 您应该看到新的 DLL 接管。 有几点需要检查:
另一个问题可能取决于您在应用程序中所做的更改。 您只能在特定情况下进行 Gac/Restart。 请参阅 Jon Flander 博客上的何时可以重新启动 gac 并重新启动以供参考。
What you are describing here is correct. You should see the new DLL taking over. A couple things to check:
Another issue might be based on what you changed in the Application. You can only Gac/Restart under particular circumstances. See this When can you just re-gac and re-start on Jon Flander's blog for reference.
如果您想真正确定已进行 GAC:ed 的正确程序集,请单击“运行”并键入“%systemroot%\assemble\gac”(对于 .Net 1.1)或“%systemroot%\ assembly\gac_msil”(对于 >)。 2.0。
在那里您可以检查(或覆盖)每个版本号的物理文件。
如果您让我们知道您正在使用程序集、管道、functoid、架构等 BizTalk 的哪一部分,这可能会帮助我们为您提供支持。
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.