• 2013-9-13工作心得


    最近把java的Dubbo的服务框架改成Dubbo.Net。即.net版的Dubbo服务框架。由于对java不是很了解,好多java代码看不懂,其实也是自己不太想看。还好有个java的同事即会.net也会java,在他的带领下我们完成了Dubbo.Net.但是对Dubbo中用到的好多知识自己还不是很明白。只能慢慢研究了,例如Hessian,Zookeeper.但是期间我们遇到了好多问题。下面一一例出。

    1.应用程序池回收,或IIS启动时服务不自动初始化问题.

    由于一开始服务启动的方法是在Application_Start方法中写的。此方法只有当用户请求时才会执行,而我们要实现在部署到IIS上时服务开始启动与注册中心开始连接。在应用程序池回收时,会释放一些资源。服务就又停掉了。针对此问题我们找了下,Asp.net4.0中自动启动web应用。参考 http://blog.csdn.net/cxzhq2002/article/details/8651311 。但是我们服务器上IIS是6.0的,此方案只在IIs7.0上才起作用。后来我们使用HttpListener实现简单Web服务器 参考 http://www.cnblogs.com/wlitsoft/archive/2012/04/25/2469524.html。

    HttpListener的机制应该与IIS中差不多。待继续研究。

    2.解决Zookeper引用log4.net 1.2.11.0,导致在Dubbo.net使用1.2.10.0 出错的问题。

    由于公司统一用的1.2.10.0的log4.net。在Zookeper的源码中虽然log4net属性中显示1.2.10.0,但是一直出现未能加载log4.net 1.2.11.0,最后替换了下Zookeper的源码中的log4.net。

    3.HessianCSharp 源代码中Activator.CreateInstance(this.m_type.Assembly.FullName, this.m_type.FullName).Unwrap(); 出现了异常,现改为 object result = Activator.CreateInstance(this.m_type);这样是可以的。至于两个方法的不同还需下面继续研究。单纯从异常的信息来看是没有加载Dubbo.Net.Test.Service.dll的引用,但是这个引用在服务开始启动时就已经被加载。最后根据Assembly.GetAssembly(this.m_type);方法发现此程序集已经被加载了。

    4.解决Release目录下不生成log的问题。原因是由于Debug下生成的服务为卸载。即当前运行的服务一直为debug下的服务。卸载windows服务。使用 

    >cd c:windowssystem32cmd.exe sc delete 服务名,删除服务。删除不了可重启电脑。

     

  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/mmnyjq/p/3318617.html
Copyright © 2020-2023  润新知