| Author | Messages | |
LEADTOOLS Posts:28

| | 05/09/2007 3:04 PM |
| I have recently tried installing some modules in a new install of dotnetnuke 4.5.1 in a webfarm environment after installing the CSSNavView module. Your module installed successfully, but subsequent installations of additional modules have failed. (I do not suspect a relationship). I was wondering if you might have any idea what could have affected this? I have only done two things since then that I can think of that were outside routine use of dotnetnuke. I configured SQL 2005 to run some automated backups and I zipped up the files in the shared folder to a zip folder outside the share.
I am using two front end servers using a dfs and a back-end SQL server. The site itself is functioning without any problem, I only see an error when attempting to install a module. The files unpack properly, but I get the following error under the last section, "Registering Desktop Module"
ExceptionSystem.ArgumentException: Parameter count does not match Parameter Value count. at Microsoft.ApplicationBlocks.Data.SqlHelper.AssignParameterValues(SqlParameter[] commandParameters, Object[] parameterValues) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteScalar(String connectionString, String spName, Object[] parameterValues) at DotNetNuke.Data.SqlDataProvider.AddDesktopModule(String ModuleName, String FolderName, String FriendlyName, String Description, String Version, Boolean IsPremium, Boolean IsAdmin, String BusinessControllerClass, Int32 SupportedFeatures, String CompatibleVersions, String Dependencies, String Permissions) at DotNetNuke.Entities.Modules.DesktopModuleController.AddDesktopModule(DesktopModuleInfo objDesktopModule) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.RegisterModules(PaFolder Folder, ArrayList Modules, ArrayList Controls) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.Install(PaFolderCollection folders) at DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller.Install()
Do you have any idea where this problem could be coming from and what steps would be necessary to fix it? | | | |
| |
| John Mitchell Posts:3478


| | 05/09/2007 3:18 PM |
| From the error it looks like you have different versions of DotNetNuke on your webservers.
The one that is currently attempting the install is not in sync with the stored procedures of the DB.
| | | |
| LEADTOOLS Posts:28

| | 05/09/2007 3:32 PM |
| Strange... This installation was a fresh install of 4.5.1. Is it possible there was a problem with the 4.5.1 release at the time I downloaded it or would you think the problem would have likely come from somewhere else? The two front end servers are using a dfs, so the files should be identical.
Any suggestions or things that might help me to research this further? | | | |
| John Mitchell Posts:3478


| | 05/09/2007 3:49 PM |
| I'm assuming dfs is a dedicated file server, so are both websites pointing at the same physical DNN folder?
Look in the versions table of the DB and see if it has a row for the 4.5.1 version.
| | | |
| LEADTOOLS Posts:28

| | 05/09/2007 4:02 PM |
| Sorry, by DFS I mean distributed file system. I mention this because this insures the files on either front-end server are identical. As to the Database, it looks like it is also 4.5.1 per the information below.
VerID Major Minor Build 4/20/2007 11:23:50 AM 1 4 4 0 4/20/2007 11:23:50 AM 2 4 4 1 4/20/2007 11:23:52 AM 3 4 5 0 4/20/2007 11:23:53 AM 4 4 5 1 4/20/2007 11:23:54 AM
I'm assuming this information makes this problem more difficult? | | | |
| John Mitchell Posts:3478


| | 05/09/2007 4:06 PM |
| | I'm not trusting your sync then. Right click on the DotNetNuke.dll for each web server and go to properties to check the version. | | | |
| LEADTOOLS Posts:28

| | 05/09/2007 4:10 PM |
| | I see 4.5.1.28 on both servers. Thank you for taking the time to look at this. | | | |
| John Mitchell Posts:3478


| | 05/09/2007 4:28 PM |
| Hmmm. That is strange. Maybe it didn't run all the DB scripts when you installed. That proc was updated in DNN 4.5
You can run this in the SQL window after selecting to execute as script:
/* Update AddDesktopModule */
/***************************/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'{databaseOwner}[{objectQualifier}AddDesktopModule]') AND OBJECTPROPERTY(id, N'IsPROCEDURE') = 1)
DROP PROCEDURE {databaseOwner}{objectQualifier}AddDesktopModule
GO
CREATE PROCEDURE {databaseOwner}{objectQualifier}AddDesktopModule
@ModuleName nvarchar(128),
@FolderName nvarchar(128),
@FriendlyName nvarchar(128),
@Description nvarchar(2000),
@Version nvarchar(8),
@IsPremium bit,
@IsAdmin bit,
@BusinessController nvarchar(200),
@SupportedFeatures int,
@CompatibleVersions nvarchar(500),
@Dependencies nvarchar(400),
@Permissions nvarchar(400)
AS
INSERT INTO {objectQualifier}DesktopModules (
ModuleName,
FolderName,
FriendlyName,
Description,
Version,
IsPremium,
IsAdmin,
BusinessControllerClass,
SupportedFeatures,
CompatibleVersions,
Dependencies,
Permissions
)
VALUES (
@ModuleName,
@FolderName,
@FriendlyName,
@Description,
@Version,
@IsPremium,
@IsAdmin,
@BusinessController,
@SupportedFeatures,
@CompatibleVersions,
@Dependencies,
@Permissions
)
SELECT SCOPE_IDENTITY()
GO
| | | |
| LEADTOOLS Posts:28

| | 05/09/2007 4:39 PM |
| | I can install now!!! I'm not one to slather praise, but unfortunately for that tendency of mine you are approaching messiah status... We will definitely be purchasing page blaster when the 301 redirects are included in the package. I'll do my best to help get the word out as a token of my appreciation. Pardon my bluntness, but you just saved my butt... again. I'm starting to feel a little guilty. :) | | | |
| LEADTOOLS Posts:28

| | 05/09/2007 4:41 PM |
| If you care about such things and have an experts exchange account, post your answer here:
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_22562433.html
and I'll make yours the answer. If not, thanks all the same and I will link to your post. | | | |
| John Mitchell Posts:3478


| | 05/09/2007 5:14 PM |
| Thanks, I really appreciate the feedback.
I don't have a ExpertsExchange account, but I also appreciate the offer.
That reminds me, I don't think I answered the "near future" about PageBlaster.
I better go do that now. | | | |
| LEADTOOLS Posts:28

| | 05/10/2007 9:39 AM |
| There are some things about life that are unfortunate, one of those is illustrated by the timeless adage, "Help someone when they are in trouble and they will remember you when they are in trouble again"... Hello again.
It looks like there might be a few of my stored procedures that didn't get updated. Do you know of a central resource where I can get the latest SQL snippets for creating these? I got this when enabling the "users online" module when I was trying to install Scott's "Where are they module".
DotNetNuke.Services.Exceptions.ModuleLoadException: Parameter count does not match Parameter Value count. ---> System.ArgumentException: Parameter count does not match Parameter Value count. at Microsoft.ApplicationBlocks.Data.SqlHelper.AssignParameterValues(SqlParameter[] commandParameters, Object[] parameterValues) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString, String spName, Object[] parameterValues) at DotNetNuke.Services.Scheduling.DNNScheduling.SqlDataProvider.GetSchedule(String TypeFullName, String Server) at DotNetNuke.Services.Scheduling.DNNScheduling.SchedulingController.GetSchedule(String TypeFullName, String Server) at DotNetNuke.Services.Scheduling.DNNScheduling.DNNScheduler.GetSchedule(String TypeFullName, String Server) at DotNetNuke.Modules.Admin.Host.HostSettingsModule.cmdUpdate_Click(Object sender, EventArgs e) --- End of inner exception stack trace --- | | | |
| John Mitchell Posts:3478


| | 05/10/2007 10:36 AM |
| There's a couple ways you can do it. The fastest and easiest way for me is to create a new Install and then script out all the stored procedures and run the script against the DB that is not up to date. The other way is to look at the actual scripts that get ran on a DNN install. These are located in the /providers/DataProviders/SqlDataProvider folder. I tried creating a script for you, but my default website on my laptop is acting funny and i can't test it. After I reboot I'll get it working and attach the script. | | | |
| LEADTOOLS Posts:28

| | 05/10/2007 1:07 PM |
| | If you are willing to help I am not particular about the method so long as you are reasonably certain the script won't interfere with the rest of the site / module (My apologies for the novice concern). I do make backups and I am in now way trying to foster a liability by your recommendations, your opinion on it is good enough. Thanks for the help!!! | | | |
| John Mitchell Posts:3478


| | 05/10/2007 3:02 PM |
| Ok, attached is a file. Yes, make a backup of your DB first! We are all human. I tested this on my dnn 451 dev version but you never know. Upload it to your sql window, or open it and paste it in. Check the execute as script checkbox, and hold your breath while clicking on execute. |
Attachment: DNN451.StoredProcs.zip
| | |
| LEADTOOLS Posts:28

| | 05/10/2007 3:07 PM |
| Thanks for the script! Got the following error after executing. Any ideas?
System.Data.SqlClient.SqlException: Incorrect syntax near 'GO'. 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 DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) SET ANSI_NULLS ON GO | | | |
| John Mitchell Posts:3478


| | 05/10/2007 3:13 PM |
| | Did you check the "Run as Script" checkbox? I incorrectly called it "execute as script" earlier. | | | |
| LEADTOOLS Posts:28

| | 05/10/2007 3:16 PM |
| Yes, I made sure it was checked. (not sure if I should have done this, but I tried it again and I got this error) I can easily restore my database in 15 minute increments, so corrupting the database is only a temporary problem if I need to restore.
System.Data.SqlClient.SqlException: Incorrect syntax near 'SqlException'. Incorrect syntax near 'GO'. 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 DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) System.Data.SqlClient.SqlException: Incorrect syntax near 'GO'. 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 DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) SET ANSI_NULLS ON GO | | | |
| John Mitchell Posts:3478


| | 05/10/2007 3:23 PM |
| Running it multiple times won't hurt. I should have looked at your error closer, it does say you are running the ExecuteScript routine. It must be a SQL 2005 thing, let me check that out. | | | |
| LEADTOOLS Posts:28

| | 05/10/2007 3:24 PM |
| | No problem! Thanks again, also check your email if you have a second. | | | |
|
|