Introduction
Instead of playing games I enjoy developing them. I develop 3D games with Unity and Unreal game engines. I always want to embed a demo version of some of my games in my blog which is hosted on Azure. I uploaded the files from final build of the game to Azure but it didn’t help me. I got a 404.3 error. Most servers require no configuration at all. We have to just upload the .unity3d file, and the accompanying html file but it doesn’t work on Azure. On Azure we have to add a custom mime type.
MIME types
MIME stands for Multi-purpose Internet Mail Extensions. MIME types form a standard way of classifying file types on the Internet. Internet programs such as Web servers and browsers all have a list of MIME types, so that they can transfer files of the same type in the same way, no matter what operating system they are working in. There are many predefined MIME types, such as GIF graphics files and PostScript files. It is also possible to define your own MIME types.
In addition to e-mail applications, Web browsers also support various MIME types. This enables the browser to display or output files that are not in HTML format.
If you try serving .mp4 files from your webserver it will also throw a 404.3 error because it blocks requests for unknown mime types as Azure does not want to serve out random content. We really don’t want our web server to serve any random files like.mdb (access database), .passwd (password), .inc (source include) or other files that may have landed in our web content directory. So we error on the safe side and block all unknown extensions by default from being served. To make it easy to troubleshoot, we return this special error - coded 404.3.
Server Error in Application "<application name>"
--------------------------------------------------------------------------------
HTTP Error 404.3 - Not Found
HRESULT: 0x80070032
Description of HRESULT: The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed.
Lets Start
It is very easy to add MIME types to Azure. So let us see how to do that.
- Get access to your site’s home directory. I configured FTP access to my site with FileZilla, Definitely you can use any other FTP client application also. You can get FileZilla from here https://filezilla-project.org/ . Download and install it in your Computer.
- Log in to your Azure portal
- Go to your website’s dashboard
- Download the publish profile.
- In FileZilla go to “File -> Site Manager”
- Finally connect to your website with username and password as shown in your publish profile and you will see three folders:
Site- This is the folder where your website specific files are located
Logfiles - This is the folder where your website specific Diagnostics LOG files are located.
Data - Site data is stored here.
- In the site folder under the root directory edit the “web.config” file or create it.
- Make some changes as follows
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".unity3d" mimeType="application/vnd.unity" />
</staticContent>
</system.webServer>
</configuration>
The MIME type for Unity webplayer content is:
application/vnd.unity
And the file extension for unity webplayer files is:
.unity3d
If you're editing htaccess files on your server, you need to add this:
AddType application/vnd.unity unity3d
- You are now done. Restart your website from the dashboard. Now you can show your developed game to the world.
Similarly if you want to serve .mp4 files you can add the following in the “web.config” file
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
You can check my embed Unity games here http://poojabaraskar.com/campfire-earthborns/
Points of Interest
Embeding a game which is developed by you in your site is pretty much interesting. You can show your game to the world. It is very easy to add MIME types to Azure. By adding MIME types we can serve anyother file types also.
History
V1 of article