Deploying Your MVC VoiceXML Application

I found a couple of issues when deploying a VoiceXML application using MVC and VoiceModel to a hosted environment and I wanted to share the solutions here.

First you may get an error message when you try to run the application that it cannot find certain assemblies that are required for MVC.  In an earlier post titled "Using ASP.Net MVC to Create a Simple VoiceXML Application" I discuss how you have to install MVC 3 because it does not come with VS 2010 right out of the box.  Well it is currently not part of the .NET Framework either.  But there is an easy solution for including the correct assemblies as described in this blog post.  Just right click on your project and select Add Deployable Assemblies.  I dialog box will appear and select the option for ASP.NET MVC.  Now when you publish your project the appropriate assemblies will be deployed with it.

The other issue is that VoiceModel deploys shared views in the ~/tmp/Views/ directory.  When you run the application you may get an error that ASP.NET does not have the proper permission to access this directory.  The solution is simple, just give modify access to the IIS_IUSRS or ASP.NET user for this directory.

After correcting these issues I was able to run my VoiceXML application on a hosted web server without any issues.  Just make sure you hosting service support .NET 4.0.  Why would I want to put my VoiceXML application on a hosted web server?  Because I wanted to test how it worked against Voxeo's Hosted IVR service.  You can test on Voxeo's Hosted IVR service for free just as you can get a free on-premise IVR that has 2 ports for testing.  I have already discussed how to test  using the on-premise IVR (Prophecy) in "Testing Your VoiceXML App With Voxeo Prophecy".  In a future post I will show how easy it is to test in the hosted environment.


Popular posts from this blog

Customizing Claims for Authorization in ASP.NET Core 2.0

Using Claims in ASP.NET Identity

Adding Email Confirmation to ASP.NET Identity in MVC 5