Skip to main content

The program can’t start because MSVCR71.dll is missing

IIS relies on libraries that contains functions to host ASP.NET, PHP or other types of web applications. If a library is missing or corrupt in the server, your application may not function properly and throw an error such as “The program can’t start because MSVCR71.dll is missing“.

The error messages browsers display to the user aren’t always helpful. This is because either the application uses custom error pages or IIS and the application is not aware of the underlying error.

In this post, I will list the error messages first. These messages led us to the solution. Please jump to “Solution” section to pass the error details.

The Most Functional and Compact Toiletry Bag

The Issue with PHP File Upload

In my case, users were trying to upload files to the application but they were failing. There were no visible error message on the application. However, F12 Developer Tools showed “500 – Internal Server Error“. We also saw the message below in Event Viewer:

Faulting application name: php-cgi.exe, version 5.2.11.11
Faulting module name: php-cgi.exe, version 5.2.11.11
Exception code: 0xc0000005
Faulting offset: 0x0000191a
Faulting process id: 0x1280
Faulting application path: C\php\php-cgi.exe

Faulting application name: php-cgi.exe
Event 1000 Faulting application name: php-cgi.exe

PHPINFO Error (The FastCGI process exited unexpectedly)

If you come across an issue with php-cgi.exe in IIS, I would recommend checking if PHP is functional first. You can do this by deploying a simple PHP file in the application root folder. Here is a sample code for your PHP file:

<?php
phpinfo();
?>

phpinfo() class displays information about the current status of PHP. More information is on the official PHP site.

In the server I troubleshot, the PHP page failed with the error below.

HTTP Error 500.0 – Internal Server Error
c:\php\php-cgi.exe – The FastCGI process exited unexpectedly

The FastCGI process exited unexpectedly

If the issue in your environment is about the PHP application itself rather than the IIS configuration, check this post out: How to debug PHP projects?

Final error: The program can’t start because MSVCR71.dll is missing

In order to narrow down the issue, I tried to run php-cgi.exe file located under C:\php folder. Here is the error message I got:

The program can’t start because MSVCR71.dll is missing from your computer. Try reinstalling the program to fix this problem.

The program can't start because MSVCR71.dll is missing from your computer. Try reinstalling the program to fix this problem.

Root Cause

In my scenario, this issue (missing MSVCR72.dll) occurred because -probably- the latest Windows security patches somehow deleted this file in the attempt to place a new version but the newer version wasn’t copied.

We saw that security patches and a new version of Visual C++ Redistributable installed in the server at the same time the issue (file upload failure) started occurring.

Solution

Search for the missing file (MSVCR72.dll) in other servers and even client machines. If you find it, copy it to C:\Windows\SysWOW64 folder. This solved the issue in my case.

Alternatively, you can uninstall the latest security patches and Visual C++ Redistributable that likely to caused the issue. However, It’s unlikely to solve the missing DLL issue (I tried). I have also tried sfc and dism tools. They didn’t solve the issue neither.

If you can’t find the missing DLL in other machines, I would recommend installing (or reinstalling) the correct version of Visual C++ Redistributable.

Here are related Stackoverlow and IIS Forum posts.

During the troubleshooting process, you may need to determine processor architecture for certain DLL files. Here is an easy way to find out this information: How to find out processor architecture (x86, x64) of dll and exe files?

The Most Functional and Compact Toiletry Bag

Leave a Reply

Your email address will not be published. Required fields are marked *