我在IIS 7的WS2K8 R2盒子上使用一组托管代码时遇到了一些麻烦。我有另一台运行WS2008的服务器没有遇到同样的问题。我从旧服务器复制了应用程序代码,使其完全相同。
我的服务器端日志中抛出的异常是:
"ModuleLoadException: The C++ module failed to load while attempting to initialize the default appdomain."
我也同时在VS2010中返回错误:
Unable to find assembly 'msvcm80, Version=8.0.50727.4927, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
我已经检查过,msvcm80的正确版本在服务器上的“C:\ Windows \ winsxs”文件夹中。我还安装了Microsoft Visual C ++ 2005 Redistributable(x64)和(x86)。
我看不出为什么会抛出错误?
我的调试时间很低,所以请耐心等待。
答案 0 :(得分:1)
我重新检查了版本细节。它似乎是Microsoft Visual C ++ 2005 Redistributible的要求。我在服务器上重新安装了它的所有版本并应用了安全修补程序。
在IIS中重新启动和测试后,问题已经从我的日志文件中消失了。
我确实检查了两台服务器之间的比较,并不是很高兴复制文件。我觉得最好先尝试这种方法。
感谢您的帮助。
答案 1 :(得分:0)
msvcm80是一个.NET Framework混合程序集(microsoft visual c ++托管+非托管)。您可能会尝试在第二台服务器上找到此文件,并将其放在第一台服务器上的应用程序附近。
注意:.Net Framework Runtime需要精确版本的程序集(在您的情况下为8.0.50727.4927)。