What is MIME type "application/x-ms-pdb"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

application/x-ms-pdb is a MIME type for Microsoft debugging files. These files hold symbolic information that maps machine code to source code. This information is critical during debugging steps to locate errors in the code.

The file is normally generated alongside executables during the build process. It helps debuggers associate binary instructions with readable code, variable names, and function boundaries. The data speeds up error tracking and post-crash analysis. These files are most common in Microsoft development environments and are rarely shared outside the debugging context of development projects involving Windows software. They are specifically stored in a PDB container from Microsoft Program DataBase (v7).

For more details on MIME types and debugging files, check out the Microsoft Debugging Documentation.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-ms-pdb    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-ms-pdb">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-ms-pdb');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

How do I configure IIS to serve PDB files?

By default, IIS may block unknown file extensions for security reasons. To serve .pdb files, you must add a MIME mapping in your web.config file or via the IIS Manager. Add <mimeMap fileExtension=".pdb" mimeType="application/x-ms-pdb" /> inside the <staticContent> section.

Is it safe to expose application/x-ms-pdb files publicly?

Generally, no. PDB files contain symbolic information, including local file paths, variable names, and function names, which makes reverse engineering your application significantly easier. Unless you are hosting a public Symbol Server for an open-source project, you should restrict access to these files.

Why does my browser download the PDB file instead of displaying it?

Browsers do not have built-in engines to render application/x-ms-pdb content because it is a binary format used specifically by debuggers like Visual Studio. When a browser encounters this MIME type, it defaults to downloading the file so you can open it with the appropriate local software.

What is the difference between application/x-ms-pdb and chemical/x-pdb?

While both use the .pdb extension, they are completely different formats. application/x-ms-pdb is for Microsoft Program Database (debugging) files, whereas chemical/x-pdb is used for Protein Data Bank files in chemistry software. You must ensure your server sends the correct MIME type based on the context of your data.

How do I add support for PDB files in Nginx?

To allow Nginx to serve these files with the correct header, open your mime.types file (usually located in /etc/nginx/). Add the line application/x-ms-pdb pdb; to the list, or ensure it is included in your server block configuration, then restart Nginx.

Why am I getting a 404 error when trying to access a .pdb file?

If the file exists but returns a 404 (specifically 404.3 in IIS), the web server likely does not have the MIME type configured for that extension. Servers often treat unregistered extensions as non-existent for security. verifying the configuration for application/x-ms-pdb usually resolves this.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.