我看了不少关于.NET下关于EnterpriseService的文章,居然都没有谈到跨机器调用服务器端组件的方法,自我感觉,如果真正用到EnterpriseService做过开发,是不能避免遇到这个问题的,目前我的方法是在服务器上起一个服务,通过Remoting将组件引用传递给客户端,相比较在VB+COM世界里,客户端只要安装了代理包,创建远程组件却是非常容易:CreateObject(ProgID)即可.难道.NET下没有更简便的办法?
再一点,刚才测试如下一个组件
public class Class1:ServicedComponent
{
public Class1()
{
//
// TODO: Add constructor logic here
//
}
public string Test()
{
System.IO.StreamWriter sw = new System.IO.StreamWriter("c:\\ttt.txt",true);
sw.WriteLine("12345555");
sw.Flush();
sw.Close();
return System.DateTime.Now.ToString();
}
}
斜体的代码单独执行没有问题,放在COM+组件中,居然有返回了,而C盘下并没有我预期的ttt.txt文件?
出错了?可没有报错啊?我可是处心积虑说服领导拿.NET来开发新系统,这我怎么能放心?今晚还不能解决这个问题,我就把拿.NET开发的计划给否了,要是那样,心痛啊.
======写文件失败问题已经解决======
总结:Terminal环境下开发或调用COM+组件,COM+应用不能使用交互用户,否则会出现许多古怪的问题,切记.