Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This sounds like the error that I had when the Visual C++ 2008 Redistributable (msvcr90.dll) was not installed on the system. But first, please check (with Dependency Walker) that <code>httpd.exe</code> and <code>mod_wsgi.so</code> are using exactly the same <code>msvcr90.dll</code>:</p> <ul> <li>same name</li> <li>same directory</li> <li>same version</li> <li>same timestamp</li> </ul> <p>If they are using different DLL names (e.g. <code>msvcr90.dll</code> and <code>msvcr100.dll</code>) then you <strong>must</strong> recompile both with the same compiler (e.g. Visual Studio 2008).</p> <p>If they are using the same DLL name, but different versions or in different directories, then you might be having the same problem that I had, with BitNami DjangoStack.</p> <p>Because <code>msvcr90.dll</code> was not installed system-wide in <code>C:\Windows\WinSxS</code>, <code>httpd</code> was only able to run at all because there was an "xcopy deployment" of the side-by-side assembly in the same directory as httpd.exe:</p> <ul> <li><code>Microsoft.VC90.CRT.manifest</code></li> <li><code>msvcr90.dll</code></li> </ul> <p>If these files had not been present, it would have failed due to a missing dependency on <code>msvcr90.dll</code>, or else with this error:</p> <blockquote> <p>This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.</p> </blockquote> <p>(i.e. the DLL was found but without a manifest to make it valid).</p> <p>Although <code>httpd.exe</code> runs this way, it is not able to reliably load a DLL that also uses <code>msvcr90.dll</code>:</p> <ul> <li>If the DLL has an "xcopy deployment" in its OWN directory, then it will load <strong>another</strong> copy of the DLL into the process (because it's a different copy of the DLL?). This results in a second heap in the process memory space, which can crash the process if memory is passed between the DLL and httpd (allocated by one and freed by the other). I think this is what you're seeing.</li> <li>If the DLL does <strong>not</strong> have an "xcopy deployment" in its own directory, then it will fail to load with a SideBySide or Windows Error Reporting error in the System event log.</li> </ul> <p>You can see more about this kind of problem on <a href="http://bugs.python.org/issue4120" rel="nofollow">Python bug 4120</a>, although this is not a clear, complete and definitive explanation of the problem, and I have not been able to find one yet.</p> <p>The only reliable way I found to run this stack was to install the <a href="http://www.microsoft.com/en-us/download/details.aspx?id=5555" rel="nofollow">Visual C++ 2008 redistributable</a> system-wide, which places a copy of <code>msvcr90.dll</code> in a subdirectory of <code>C:\Windows\WinSxS</code> along with a manifest to make it work.</p> <p>This should (I think) cause Windows to completely ignore the <code>Microsoft.VC90.CRT.manifest</code> and <code>msvcr90.dll</code> files in the application and DLL directories. Both should use the same DLL in <code>C:\Windows\WinSxS</code>, and it should only be loaded into the process once.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload