Search code examples
asp.netazurednsazure-web-app-servicedotnetnuke

DotNetNuke website migration to Azure fails with nx domain DNS error


I am currently working on a DotNetNuke website (07.03.02) and I am trying to migrate it to Azure. The website is working on my local machine with IIS.

I followed this tutorial to migrate the website : http://www.dnnsoftware.com/community-blog/cid/154975/moving-a-dnn-install-to-microsoft-azure-websites

So I created a new web application on Azure that will host the website files. I also created a new database on Azure, and I imported my DNN backup database.

I changed the connection strings in my web.config to use my Azure database, I uploaded the website folder on Azure.

Now if I try to browse my webapp using the link [sitename].azurewebsites.net, I get the following error :

DNN Error Domain Name Does Not Exist In The Database

DotNetNuke supports multiple websites from a single database/codebase. It accomplishes this by converting the URL of the client browser Request to a valid PortalID in the Portals database table. The following steps describe the process:

Web Server Processing When a web server receives a Request from a client browser, it compares the file name extension on the target URL resource to its Application Extension Mappings defined in IIS. Based on the corresponding match, IIS then sends the Request to the defined Executable Path ( aspnet_asapi.dll in the case of ASP.NET Requests ). The aspnet_isapi.dll engine processes the Request in an ordered series of events beginning with Application_BeginRequest. HttpModule.URLRewrite OnBeginRequest ( UrlRewriteModule.vb ) The Request URL is parsed based on the "/" character A Domain Name is constructed using each of the relevant parsed URL segments.

Examples:

URL: http://www.exemple.com/default.aspx = Domain Name: www.exemple.com URL: http://209.75.24.131/default.aspx = Domain Name: 209.75.24.131

URL: http://localhost/DotNetNuke/default.aspx = Domain Name: localhost/DotNetNuke URL: http://www.exemple.com/virtualdirectory/default.aspx = Domain Name: www.exemple.com/virtualdirectory URL: http://www.exemple.com/directory/default.aspx = Domain Name: www.exemple.com/directory

Using the Domain Name, the application queries the database ( Portals table - PortalAlias field ) to locate a matching record.

Note: If there are multiple URLs which correspond to the same website then the website alias field must contain each valid Domain Name in a comma separated list.

Example:

URL: http://localhost/DotNetNuke/default.aspx URL: http://MACHINENAME/DotNetNuke/default.aspx URL: http://209.32.134.65/DotNetNuke/default.aspx PortalAlias: localhost/DotNetNuke,MACHINENAME/DotNetNuke,209.32.134.65/DotNetNuke

Note: If you are installing the application to a remote server you must modify the PortalAlias field value for the default record in the Portals table according to the rules defined above.

So I inserted the Site Alias ([sitename].azurewebsites.net) record into the PortalAlias table as mentioned in the turorial.

Now when I try to reach the website [sitename].azurewebsites.net, I don't have the previous DNN error but it loads for a long time and then I got the following error :

www.[sitename].azurewebsites.net’s server DNS address could not be found. DNS_PROBE_FINISHED_NXDOMAIN

After the load end, the URL curiously become https://www.[sitename].azurewebsites.net and the DNS error occur.

Is there something I need to change in Azure or in my web.config file ? Maybe there is something to configure in DotNetNuke or in the ASP version?

I don't get why my browser change the url and why this dns error occur (I have no issues with my local IIS server).

(I also tried by using the automatic portal alias transfer as mentioned in the tutorial but I got the same result : the alias is inserted in the database but I still have the NXdomain error)

Thank you for your help !

Etienne.


Solution

  • In your original post you have:

    www.[sitename].azurewebsites.net’s server DNS address could not be found. DNS_PROBE_FINISHED_NXDOMAIN

    Try to manually put the . (The full, http with colons, etc.) Sometimes the web browser will add the WWW automatically, thinking you wanted it (I hate when they do that). Azure doesn't know about the www subdomain, so that is why you are probably getting that error.

    Edit: Oh, and the long load time is good - it means that azure compiled your site and you didn't get a compile error.