If your problem really is with DNS, you might try adding an entry to the hosts file (c:\windows\system32\drivers\etc\hosts) on your SharePoint machine, and add an entry like this:
192.168.101.4 spapps.contoso.com Where you replace 192.168.101.4 with the actual IP of your remote web.
If by "We do not have any dns entry registered for the http url", you are really saying that the web server on your remote web does not have a binding for port 80, then I would suggest you try temporarily adding that binding, and see if the problem goes away.
If you still have problems, here are some things you might try:
1.) Make sure that there is a web.config file in your /Services directory that allows anonymous access like this:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <authorization> <allow users="?" /> </authorization> </system.web> </configuration> 2.) When you get the error message, do you get a CorrelationID? If so, use one of the ULS Viewers to filter by the correlation ID, and find all of the actual error messages inside the SharePoint log.
3.) Setup Fiddler on your SharePoint server, and temporarily add the following to SharePoint's web.config (make sure to remove this when you are done; filedone). File is usually in c:\inetpub\wwwroot\wss\VirtualDirectories\80)
<system.net> <defaultProxy> <proxy usesystemdefault="False" bypassonlocal="False" proxyaddress="http://127.0.0.1:8888" /> </defaultProxy> <settings> <httpWebRequest useUnsafeHeaderParsing="true" /> </settings> </system.net> Then, re-deploy the app so that SharePoint will call your remove event receiver, and look in the Fiddler "Inspectors" window to see what errors occurred in the response.