Kevin Li

突破.net极限
随笔 - 28, 文章 - 0, 评论 - 68, 阅读 - 79188

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

2007年6月12日

当BizTalk使用多服务器部署方案时,如果要更新BizTalk Application引用到的程序集,就必须将程序集同时更新到多台服务器的GAC中。如果每次更新以后,都需要手工在多台服务器更新,实在太麻烦。为了偷懒,就想到用WMI在远程服务器上创建进程来更新GAC中的程序集:)

用WMI在远程服务器上创建进程的命令如下:
WMIC /node:server01 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /u myBizAssembly"
WMIC /node:server01 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /i C:\Deploy\myBizAssembly.dll"

接下来要做的就是将程序集,从Build机器copy到deploy服务器上,然后调用gacutil卸载程序集、重新安装程序集和重启BizTalk Host Instances了。把所有的命令都写到一个批处理文件就可以:

@Echo Copy files
Copy C:\Build\myBizAssembly.dll \\Server01\Deploy\myBizAssembly.dll 
Copy C:\Build\myBizAssembly.dll \\Server02\Deploy\myBizAssembly.dll
Copy C:\Build\myBizAssembly.dll \\Server03\Deploy\myBizAssembly.dll

@Echo Install assemblies to GAC
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /u myBizAssembly"
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /i C:\Deploy\myBizAssembly.dll"
WMIC 
/node:server02 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /u myBizAssembly"
WMIC 
/node:server02 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /i C:\Deploy\myBizAssembly.dll"
WMIC 
/node:server03 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /u myBizAssembly"
WMIC 
/node:server03 /user:mydomain\myusername /password:pass@word1 process call create "C:\gacutil /i C:\Deploy\myBizAssembly.dll"

@Echo Restart Host Instances
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "net stop BTSSvc$BizTalkReceiveHost"
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "net start BTSSvc$BizTalkReceiveHost"
WMIC 
/node:server02 /user:mydomain\myusername /password:pass@word1 process call create "net stop BTSSvc$BizTalkProcessHost"
WMIC 
/node:server02 /user:mydomain\myusername /password:pass@word1 process call create "net start BTSSvc$BizTalkProcessHost"
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "net stop BTSSvc$BizTalkSendHost"
WMIC 
/node:server01 /user:mydomain\myusername /password:pass@word1 process call create "net start BTSSvc$BizTalkSendHost"


不过这种方式,只适合不影响到BizTalk的Bindings的时候,比如新的程序集相对原来的程序集,多了一个ReceivePort,这种方式没办法更新BizTalk的Bindings。

这种方式,也适用于daily build後将程序集部署到测试服务器上,只需要加一段自定义任务就可以。

<Target Name="AfterCompile">
        
<Exec Command="&quot;c:\mywmideploy.bat&quot;"/>
</Target>



 

posted @ 2007-06-12 14:57 Kevin Li 阅读(566) 评论(0) 推荐(1) 编辑

2007年5月26日

摘要: 在测试WCF 的WS-AT协议的时候发现,虽然wsHttpBinding只支持WS-AtomicTransaction,但是当我没有配置MSDTC支持WS-AT协议,或者没有启用WS-AT协议,事务还是能够正常的Commit和Rollback。刚开始不知道是什么原因,后来查了一下微软的相关文档,发现... 阅读全文

posted @ 2007-05-26 23:58 Kevin Li 阅读(2531) 评论(1) 推荐(0) 编辑

摘要: 分析WCF WS-AT消息内容 阅读全文

posted @ 2007-05-26 23:39 Kevin Li 阅读(3577) 评论(1) 推荐(0) 编辑

摘要: 配置MSDTC支持WS-AT协议,并使用WCF写使用WS-AT协议的分布式事务应用程序 阅读全文

posted @ 2007-05-26 23:08 Kevin Li 阅读(5845) 评论(7) 推荐(1) 编辑

2007年2月9日

摘要: 前两天看到了Jeffrey Zhao的鸡肋烹制出的美味——真正可调试的ASP.NET AJAX ,真是不错,把Ajax的代码整理成一个项目文件,现在可以调试了。但是因为微软没有提供设计时的源代码,开发的时候还是没法设计时支持,感觉还是不爽,没法只好自己用Reflector + FileDisasse... 阅读全文

posted @ 2007-02-09 10:21 Kevin Li 阅读(2695) 评论(9) 推荐(0) 编辑

2006年11月10日

摘要: 在.net 1.1或者.net 2.0中要实现分布式事务,如果不涉及远程调用,如调用remoting或者web service的方法,应该说是一件非常简单的事情,只需要用COM+(1.1/ServiceDomain)或者TransactionScope(2.0),通过msdtc协调即可。 但是当事务方法中还需要调用remoting或者web service(不使用ws-at)时,由于remoting不支持事务传播机制,因此即便客户端调用remoting后发生错误回滚,remoting server上已经执行的操作(如数据库操作)也已经无法回滚。 阅读全文

posted @ 2006-11-10 00:56 Kevin Li 阅读(3365) 评论(0) 推荐(0) 编辑

2005年12月10日

摘要: 最近使用多线程同时调用一个Web Service,总是有很多调用报超时,代码类似于下面的代码(为了简化,我把调用Web Service改为使用HttpWebRequest访问一个网址,效果时一样的): 我循环调用100次,但是总是有几十次调用报超时,具体如下: System.Net.WebException: 操作已超时。 at System.Net.HttpWebRequest.GetResponse() at HttpRequestTest.HttpRequestTest.MakeWebRequest(Object obj) in g:\my documents\visual studio projects\httprequesttest\httprequesttest.cs:line 35 真的不知道为什么,难道Web Service就不能在多线程的环境下调用! 因为目前找不到原因,暂时放在首页,想向各位请教,明天就撤调,请手下留情,谢谢! 阅读全文

posted @ 2005-12-10 21:25 Kevin Li 阅读(9478) 评论(14) 推荐(0) 编辑

2005年5月30日

摘要: http://www.microsoft.com/china/msdn/library/langtool/vcsharp/csharpgenerics.mspx介绍的挺全面的 阅读全文

posted @ 2005-05-30 22:26 Kevin Li 阅读(2972) 评论(5) 推荐(0) 编辑

2005年5月28日

摘要: 在.net 1.1中我们无法对基础类型,如int、DateTime、enum类型等赋予null的值,但这在实际应用中往往会带来很多麻烦,比如有下面这个函数:class OrderDAC{ public ArrayList GetOrders(OrderStatus status){ }}public... 阅读全文

posted @ 2005-05-28 22:38 Kevin Li 阅读(1828) 评论(4) 推荐(0) 编辑

2005年4月20日

摘要: 分布式事务在Windows 2003的配置比较麻烦,原来我就碰到过怎么设置也启动不了的情况,近日在别人指导下弄好了,顺便写个配置步骤,希望对大家有用 1、添加/删除程序中,选择添加Windows组件,选择应用程序服务器,选择启用分布式事务网络访问 2、在DTC所涉及的所有服务器中,启用NETBIOS... 阅读全文

posted @ 2005-04-20 14:11 Kevin Li 阅读(3395) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示