Could not load file or assembly TraceWrapper

最近在做一个基于SCVMM的Portal,搭环境的时候遇到一个挺诡异的事情。在我的Windows Server 2008 R2的开发机器上,如果用正常的方式启动portal,一切正常,但是如果通过VS2010 F5 debug模式起Portal的话,总是得到下面错误。

Could not load file or assembly ‘TraceWrapper, Version=1.0.523.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′ or one of its dependencies. An attempt was made to load a program with an incorrect format.

咨询了一下Oliver同学,An attempt was made to load a program with an incorrect format的错误一般出现于64位的系统上加载32位文件,或者32位系统加载64位文件。这个问题只出现于Native dll,因为DotNet的managed dll是平台无关的。个么问题来了,我的机器是64位OS,加载的TraceWrapper.dll也是64位的,怎么还报错呢?原来事情是这样的,VS2010是个32位程序,从而由它起来的所有进程都是32位的,有图为证。在这种情况下,所有的进程都运行于32位模式,或者说WOW64模式,在这种模式下去读取64位TraceWrapper.dll就自然出现上述错误了。

image

所以解决方法是,把引用TraceWrapper.dll的project,根据你运行的环境,用对应的CPU选项编译。

关于An automated WordPress update has failed to complete的错误

WordPress的自动升级很方便,插件,theme的升级都可以一键完成。但是,wordpress偶尔也会出现抽风的现象,导致的直接后果就是在后台每个页面上方都会出现一段烦人的警告 – “An automated WordPress update has failed to complete”。

放狗搜索了一下,2步问题解决

    • 删除wp-content 下的upgrade文件夹
    • 删除根目录下的 .maintenance文件

提高SCVMM部署虚拟机性能

默认情况下,SCVMM是使用BITS通过https来把虚拟机(或者说VHD文件)从library服务器部署到host服务器的。然而对于动辄数几十G的VHD文件来说,通过加密的https协议来做文件传输,实在是多此一举。幸好,SCVMM允许用户关闭VHD文件加密传输来减少虚拟机部署的时间。

具体步骤如下, Continue reading 提高SCVMM部署虚拟机性能