因为添加assembly到GAC引起的Windows Azure Web Role部署失败

前两天部署一个web role,每次总是在waiting for role to start阶段失败。后来发现原因是偶然有一次把Microsoft.WindowsAzure.StorageClient.dll这个assembly加入了GAC但忘记从GAC删除了。因此本地编译的时候,会自动从GAC引用该assmbly而不是把它拷贝到工作目录,造成最终打包上传的时候该assembly缺失。从Windows event log里看,只是简单的报了一个IO.FileNotFound 异常,通过添加详细日志发现这个异常每次都是在某个方法刚好被调用(method body并没有被执行)的时候抛出。事后想想这个时候应该恰好是CLR根据这个方法所引用的方法加载对应assembly的时候。所以以后如果碰到类似在方法刚被调用还没开始执行就抛出FileNotFound异常,可以考虑assembly缺失的问题。

posted on 2012-06-11 11:08  谢绝围观  阅读(157)  评论(0编辑  收藏  举报

导航