DotNetNuke Installation challenges (version 5.2.x)

Discussion in 'Third-party applications' started by Ray, Jan 28, 2010.

  1. Ray

    Ray

    We have seen numerous posts pertaining to issues and challenges when installing the latest version of DotNetNuke in our shared hosting environment.

    There are two versions one can download from DotNetNuke's website "http://www.dotnetnuke.com/tabid/125/default.aspx". You can either download the "Community Edition," which is free to the public, or the "Professional Edition". The "Community Edition" will have certain product features that are available with the "Profession Edition". However, for the most part the "Community Edition" will fit the needs of most users. To see a comparison of the "Community Edition" and the "Professional Edition", try this link.

    As I mentioned before, some users have encountered issues when they tried installing the DNN version 5.2. If you downloaded the Community Edition version 5.2 you should not encounter any resistance as long as you follow the instructions they gave you. I tried this myself using my test account and I was able to install it. The test account does not have any special administrative privileges. It carries the same permission as any other account, which is the ASPNet IUSR having Read and Write permission on the root and all subfolder under it. The trust mode was set to Medium, and the installation completed without any problems.

    The difficulties I suspect that our customers are encountering are with DotNetNuke Professional Edition version 5.2. I tested this application by using my test account to install it and I too, encountered problems. The symptom you will see during the installation will be an error when running the database script against our SQL 2008 server. The first error you will see on the browser is..

    Installing Database - Version 05.00.00...FAILURE ERROR: See E:\web\[site account name]\Providers\DataProviders\SqlDataProvider\05.00.00.log for more information

    If you navigate to the DNN folder and go to Providers/DataProvider/SQLDataProvider you will see a number of new files created with an extension of .log. When you open that file you will see a log entry with…

    System.Data.SqlClient.SqlException: Cannot find the user ‘[Database Login]’, because it does not exist or you do not have permission.
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters)
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
    at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText)
    at DotNetNuke.Data.SqlDataProvider.GrantStoredProceduresPermission(String Permission, String LoginOrRole)

    GRANT EXECUTE TO [Database Login]

    The root cause of this problem is the way we have mapped the database user name assigned to your account on the server. The db user name is mapped on the SQL 2008 Server in a way so that it prevents the listing of all the other databases to be seen when you connect to our server using SQL Server 2008 Management Studio. If we mapped the database user name in a way that will work around this DNN error message, everybody will see all the databases active on that SQL 2008 server; as you can guess this will be unacceptable to the majority of our customers.

    Unfortunately at this time we do not have a resolution to this problem. We are still investigating a work around to this issue, however currently the DotNetNuke Community Edition version 5.2 is the only version that will run on our system, and DotNetNuke version 5.2 Professional Edition is not compatible (unless you have another external SQL Server you can use, in which case you should be able to setup remote connection with that SQL Server and point the connection string to that SQL Server).
     
  2. Gofer01

    Gofer01 Amateur Web Application Developer

    I do have a external SQL 2008 Web Server up and running

    • SERVERS DOMAIN: db.mydomain.com
    • SERVERS IP ADDRESS 192.168.100.50
    • DATABASE: mydabasebase
    • INSTANCENAME MSSMLBIZ
    • DB USER: Ray
    • DB PASSWORD: Winhost

    What will be the TCP connectionstring based on the above information?. I actually don't know this question. I didn't know anything about connecting to a database throught the internet intil I sign up for the MAX plan and created a db for YAF application. I saw the connectionstrring when I created the db and realized right away it was connecting via the internet

    Is it somethiong like this

    "Data Source=tcp:db.mydomain.com\MSSMLBIZ/;Initial Catalog=mydabasebase;User ID=Ray;Password=Winhost;Integrated Security=False;"

    or

    "Data Source=tcp:db.mydomain.com/;instance=MSSMLBIZ;Initial Catalog=mydabasebase;User ID=Ray;Password=Winhost;Integrated Security=False;"
     
    Last edited by a moderator: Oct 14, 2015
  3. Ray

    Ray

    If you have an external SQL server running, then you should be able to connect to it. Provided of course you set it up to allow remote connections. We ourselves will not block the out going SQL calls.

    DNN already have the connection string setup for you so you just have to input the server name, database name, database login, and password for your SQL server. When you run through the setup procedure it will display a web page where you can input these values. Pretty nice right...

    But if you want to hard code the connection string, it will be in the applications web.config file under the element <connectionStrings>...

    <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=DBServerName;Integrated Security=false;Initial Catalog=DBName;User ID=DBLogin;Password=DBPassword" providerName="System.Data.SqlClient" />
    </connectionStrings>
     
  4. Gofer01

    Gofer01 Amateur Web Application Developer

    Still don't understand. If the web.config is on your web server. The database is on my SQL 2008 Web Server clear across the country. How does that example that was giving connects to the database on my SQL Server.

    Ports 1433 and 1434 are opened via firewall. TCP is enabled on all instances

    <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=tcp:db.mydomain.com;Instance=MSSQLBIZ;Initial Catalog=mydabasebase;User ID=Ray;Password=Winhost;Integrated Security=false;" providerName="System.Data.SqlClient" />
    </connectionStrings>

    Will that above example of the connectionstring work?
     
    Last edited by a moderator: Oct 14, 2015
  5. Ray

    Ray

    Think of it this way. When you use SQL Server Management Studio to connect to a Winhost SQL server you are making a remote call to our SQL server even if you are at the other side of the country.

    The web.config file will do the same thing. Even if the web.config file is on our server, and the SQL server you are connecting to is at the other side of the country the web.config file will make a remote call and create a remote connection. Saying this, the server name is very important. Because you are making a remote call that is basically over the Internet, the SQL server name will have to follow the naming convention of the Internet which is a domain name format such as an example s01.Winhost.com. This is our SQL server name but as you can see it has a domain name format. Now, with SQL databases thats on the same web server, or a SQL database that is on the same network, you do not have to use a domain name format, infact you can use a UNC (Universal Naming Convention) path. But of course this will not work if you are transversing the signal over the Internet.

    The example connection string I gave you was specifically for a web.config file, but as I stated from the first thread you really do not have to do this. During the setup process of DNN, it will ask you what SQL database to connect to. And from this section you can specify your own personal SQL server if you wish. But bear in mind the server name will have to have a domain name format if it is going to travel over the Internet. Hope that clears it up...
     
    Last edited by a moderator: Oct 14, 2015
  6. Gofer01

    Gofer01 Amateur Web Application Developer

    Thanks. Yes it does answer my question. Now they are going to ask you how to point a domain to a computer at there home. :).

    We know how. Even with a dynamic IP address on a broadband connection.;)

    Thanks for your assistance
     

Share This Page