You are getting HTTP 404 error because DotNetNuke takes over or clears the routes.
One customer solved it by adding this class:
using System.Text;
using System.Threading.Tasks;
using DotNetNuke.Web.Api;
using GleamTech.DocumentUltimate.Web;
namespace DabRegisterGleamTech
{
public class RouteMapper : IServiceRouteMapper
{
public void RegisterRoutes(IMapRoute mapRouteManager)
{
DocumentUltimateWebConfiguration.RestoreRoutes();
}
}
}
Update: RestoreRoutes instead of PreApplicationStart method should be called.