infolink

Friday, December 30, 2011

The Kendo UI Framework Installation and Setup Part 1 of 3 - The Free trial version

I have decided to spend more time with the Kendo UI Framework, and what better a way then to share my experiences as I install and setup Telerik's KendoUI . I will post for each version's installation and it's features.


Image from kendoui.com


Part 1 - The Kendo UI Framework Free Trial Version 


The Download

Each version can be downloaded here: http://www.kendoui.com/get-kendo-ui.aspx
You can use your Telerik account or create an account to download Kendo UI.

The Files and Folders

The main download file is called kendoui.web-dataviz.2011.3.1129.trial.zip, it's size is 2.58MB zipped, 4.49MB decompressed.

Inside the zip file you will find 3 folders and 2 files.

The Folders

  • Examples - This folder contains all the Kendo UI Framework examples for Kendo UI Web and Kendo UI Dataviz. This folder contains 3 folders and 1 file:
    • Dataviz
    • Shared
    • Web
    • Index.html
          The examples are loaded in your default web browser, I recommend IE. Chrome and Firefox have      issues with at least one of the samples running locally using file://. In IE you just have to accept the Active X warning each time you reopen your browser. You can get around any annoying prompts if you have IIS installed, just point a site/Virtual directory to the examples directory. You may get an intranet enabling warning, but once accepted in IE, it will never happen again. IIS does not fix the Chome and Firefox issues with at least one of the examples.

Note: Using the Windows built in zip you cannot run the examples directly from the zip file, you must extract the zip first. I use WinRAR - http://rarsoft.com/ , which will auto extract everything needed for a file to run when clicked on. I recommend extracting the whole archive to a folder.


  • JS - This folder contains all JavaScript for the Kendo UI Framework.
  • Styles - This folder contains all styles used by the Kendo UI Framework.
The Files

The License - Kendo UI Trial Version

The Kendo UI Free trial's license is as basic as it's name, but you do get some nice features for a free trial, which are as such:
  • No source code (minifed JavaScript only)
  • Access to Major Updates only
It is for EVALUATION ONLY for 60 days

The Configuration and Implementation

Note: You can install Kendo UI in pretty much any project that is web based, I prefer the .NET Framework, so that is what I am using for this setup.

It is as simple as adding these four lines to your headers:

<link href="styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="styles/kendo.default.min.css" rel="stylesheet" type="text/css" />
 <script src="js/jquery.min.js" type="text/javascript"></script>
 <script src="js/kendo.all.min.js" type="text/javascript"></script>

You can also use the CDN which will only have Kendo UI major releases, although this really isn't necessary with the free version:


<link href="http://cdn.kendostatic.com/2011.3.1129/styles/kendo.common.min.css" rel="stylesheet"/>
<link href="http://cdn.kendostatic.com/2011.3.1129/styles/kendo.default.min.css" rel="stylesheet"/>
<script src="http://cdn.kendostatic.com/2011.3.1129/js/kendo.all.min.js"></script>


As you can see the Kendo UI is so simple to get up and running, I cannot imagine using any other HTML5 based UI framework and with Telerik involved, it can be nothing but the best. Stay tuned for many more posts about The Kendo UI Framework in the near future.

For more information about the Kendo UI, go here: KendoUI.com.

For more information about Telerik, go here: Telerik.com

Wednesday, December 21, 2011

Kendo UI is now a part of the Telerik Ultimate Collection

As an Ultimate Collection subscriber you will automatically get access to all 3 key components of Kendo UI: Kendo UI Web, Kendo UI DataViz and Kendo UI Mobile (which will be officially available in early 2012).

The addition of Kendo UI to the Telerik Ultimate Collection brings the total number of products in the Ultimate collection to fifteen. Telerik is happy to continue adding value to your Ultimate Collection, enabling you to take advantage of well-established, mature technologies, as well as emerging technologies like HTML5.
For more information check out the official Kendo website:

http://www.kendoui.com/

You can purchase the Telerik Ultimate collection here:
http://www.telerik.com/purchase.aspx?application

Wednesday, December 14, 2011

How to fix Error in Module Settings page in DotNetNuke when getting Object reference not set to an instance of an object.

I started to create a new module using the DotNetNuke Starter Pack. I created all my controls and then got to the settings page. I didn't like the textbox and default controls, so I removed them, well after removing them, I started getting the error:
InnerException: Object reference not set to an instance of an object.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: DotNetNuke.UI.Containers.ActionButtonList.get_ModuleActions
StackTrace:
I had removed the following line from my module settings page:

<asp:textbox id="txtTemplate" cssclass="NormalTextBox" width="390" columns="30" textmode="MultiLine" rows="10" maxlength="2000" runat="server" />

It turns out that that control must be in your settings page or you will continue to get that error. So as a work around for now I put my control above it and set Visible="false", on the textbox. I figured I would pass this little tip as I saw many others reporting the same error, but never saw any solutions. This is what I came up with. Hope it helps someone else save some time.

Friday, December 9, 2011

How to retrieve a RadGrid Data Key Value on Delete

protected void RadGrid1_DeleteCommand(object source, GridCommandEventArgs e)       
{

            int intItemIndex = e.Item.ItemIndex; ;
            int intMyID = Convert.ToInt32(RadGrid1.MasterTableView.Items[intItemIndex].GetDataKeyValue("ItemID").ToString());

 }
  

Wednesday, December 7, 2011

Kendo UI Has been released - Download Now!

The Kendo UI was released on December 1st. If you missed the webcast, you can see it here:

http://www.kendoui.com/webinars.aspx

You can download the Kendo UI here:

http://www.kendoui.com/get-kendo-ui.aspx

You can view some well thought out demos of what Kendo UI can do here:

http://demos.kendoui.com/

How to retrive value from Telerik RadComboBox in RadGrid on insert

I was having an issue getting the SelectedValue from the telerik RadComboBox control in a rad grid. Here is how you do it:

The front End code:

       <telerik:GridDropDownColumn DataSourceID="DSCategories" ListTextField="CategoryName" ListValueField="CategoryID"
                    UniqueName="CategoryDD" SortExpression="CategoryName" HeaderText="Category" DataField="CategoryID"
                    DropDownControlType="RadComboBox" FooterText="RadComboBox column footer"
                    AllowAutomaticLoadOnDemand="true" AllowVirtualScrolling="true" ShowMoreResultsBox="true"
                    ItemsPerRequest="10">
    </telerik:GridDropDownColumn>

The Backend Code:

    protected void RadGrid1_InsertCommand(object source, GridCommandEventArgs e)

 {
   GridEditFormInsertItem insertItem = e.Item as GridEditFormInsertItem;
   RadComboBox DDCat = (insertItem["CategoryDD"].Controls[0] as RadComboBox);
   int DDcategory = Convert.ToInt16(DDCat.SelectedValue);
  }
Buy Me a Beer

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

Tuesday, November 22, 2011

Kendo UI from Telerik coming on November 30th.

Telerik has announced a release date for the Kendo UI framework. The date they have set is November 30th.

 Kendo UI is a HTML5, jQuery-based framework which you can read more about here:

http://www.kendoui.com.

Telerik has announced a webinar scheduled for Thursday, December 1, 2011 11:00 AM - 12:00 PM EST.

You can register here for the Kendo UI webinar: https://www1.gotomeeting.com/register/335609320

Thursday, November 17, 2011

How to enable assembly binding logging using the Fusion Log Viewer

Earn easy money advertising on your blog or website: Click Here to earn money with Info Links to earn money using Click Here to earn money using adfly which simply pays you to use shortened links.

Today I had an issue with a Visual Studio 2010 ASP.Net solution. The error I was getting was:

Could not load file or assembly 'ClientDependency.Core' or one of its dependencies. Access is denied.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'ClientDependency.Core' or one of its dependencies. Access is denied.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Assembly Load Trace: The following information can be helpful to determine why the assembly 'ClientDependency.Core' could not be loaded.

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].


Well no matter what I did here it just wouldn't work, let alone what a confusing Registry path.
I searched around and noticed others just as confused as I was.

I eventually found the Fusion Log Viewer (x64) @ the following location "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\FUSLOGVW.exe" Once you execute the Fusion Log Viewer, click on settings. This is set to "Log Disabled" by default.

Note: If the option buttons are disabled in the window, close the application, right click the Fusion Log Viewer, and Run As Administrator.

You can also run the log viewer by bringing up the Visual Studio Commend Prompt for your version of visual Studio, for instance:  VS2012 x86 Native Tools Command Prompt

 Make sure to right click and RUN AS ADMINISTRATOR or you will not be able to change settings to turn it on


Once you turn on the logging(Any option but disabled), you can then either use the viewer or IE to see the error on the assembly binding.

Also, you may have to restart after changing the settings for logging.

More information here:

https://msdn.microsoft.com/en-us/library/e74a18c4%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396


Once you troubleshoot your error I would highly suggest turning logging back off, as it can be unnecessary overhead.

Earn easy money advertising on your blog or website: Click Here to earn money with Info Links to earn money using Click Here to earn money using adfly which simply pays you to use shortened links.

If this helped you, please donate:
Buy Me a Beer

Telerik Updates Silverlight Site

A couple of days ago Telerik released a new version of their website for their Silverlight Controls http://www.telerik.com/products/silverlight/overview.aspx . Taking a gander through one can only be impressed. A lot of time was surely spent on all the demos.

Monday, November 14, 2011

Create Module Package not available in DotNetNuke

Recently I had an issue where I have created a module extension in Dotnetnuke 5.6.3 and no matter what I did I could not get the Create Module Package link to appear.

One of the first things I checked was the folder name, this was identical.

As a last ditch effort I simply copied and pasted the folder from Windows Explorer path to the extension wizard folder name textbox. Updated the module and there she was, the Create Module Package link was there. Not 100% sure why it didn't work before unless I simply missed a typo.

For the Create Module Package to appear in DotNetNuke, the folder name must match an existing folder in the Desktop Module folders.

Thursday, October 20, 2011

Using Telerik Rad AJAX controls in DotNetNuke in your own module when getting Error: Sys.InvalidOperationException: A control is already associated with the element.

I have been having a interesting battle with the script manager in DotNetNuke. I was getting the error:
Error: Sys.InvalidOperationException: A control is already associated with the element.
It turns out that if you plan to use the Telerik controls in DNN, you MUST replace the default script manager. Even if you choose to not use the script manger by making sure supports partial rendering is unchecked, there will still be a script manager in the page which will cause conflict. I had to make some small changes to the DotNetNuke core framework in DotNetNuke 5.6.3. I had to make changes to the DotNetNuke.Library in the AJAX class, In the file AJAX.VB. At line 46 I changed the line to read:

Using objScriptManager As Telerik.Web.UI.RadScriptManager = New Telerik.Web.UI.RadScriptManager() With {.ID = "ScriptManager", .EnableScriptGlobalization = True}


So now my whole file looks like:
'
' DotNetNuke® - http://www.dotnetnuke.com
' Copyright (c) 2002-2010
' by DotNetNuke Corporation
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions 
' of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
' TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
' THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
' DEALINGS IN THE SOFTWARE.
'

Imports System.Web.Compilation
Imports System.Reflection
Imports System.Xml
Imports System.Xml.XPath
Imports DotNetNuke.Entities.Host

Namespace DotNetNuke.Framework

    Public Class AJAX

#Region "Public Methods"

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' AddScriptManager is used internally by the framework to add a ScriptManager control to the page
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Sub AddScriptManager(ByVal objPage As Page)
            If GetScriptManager(objPage) Is Nothing Then
        Using objScriptManager As Telerik.Web.UI.RadScriptManager = New Telerik.Web.UI.RadScriptManager() With {.ID = "ScriptManager", .EnableScriptGlobalization = True}
          If objPage.Form IsNot Nothing Then
            Try
              objPage.Form.Controls.AddAt(0, objScriptManager)
            Catch ex As HttpException
              'suppress error adding script manager to support edge-case of module developers custom aspx pages that inherit from basepage and use code blocks
            End Try
            If HttpContext.Current.Items("System.Web.UI.ScriptManager") Is Nothing Then
              HttpContext.Current.Items.Add("System.Web.UI.ScriptManager", True)
            End If
          End If
        End Using
            End If
        End Sub

        Public Shared Function GetScriptManager(ByVal objPage As Page) As ScriptManager
            Return TryCast(objPage.FindControl("ScriptManager"), ScriptManager)
        End Function

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' IsEnabled can be used to determine if AJAX has been enabled already as we
        ''' only need one Script Manager per page.
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Function IsEnabled() As Boolean
            If HttpContext.Current.Items("System.Web.UI.ScriptManager") Is Nothing Then
                Return False
            Else
                Return CType(HttpContext.Current.Items("System.Web.UI.ScriptManager"), Boolean)
            End If
        End Function

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' IsInstalled can be used to determine if AJAX is installed on the server
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Function IsInstalled() As Boolean
            Return True
        End Function

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' Allows a control to be excluded from UpdatePanel async callback
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Sub RegisterPostBackControl(ByVal objControl As Control)
            Dim objScriptManager As ScriptManager = GetScriptManager(objControl.Page)
            If objScriptManager IsNot Nothing Then
                objScriptManager.RegisterPostBackControl(objControl)
            End If
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' RegisterScriptManager must be used by developers to instruct the framework that AJAX is required on the page
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Sub RegisterScriptManager()
            If Not IsEnabled() Then
                HttpContext.Current.Items.Add("System.Web.UI.ScriptManager", True)
            End If
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' RemoveScriptManager will remove the ScriptManager control during Page Render if the RegisterScriptManager has not been called
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Sub RemoveScriptManager(ByVal objPage As Page)
            If IsEnabled() = False Then
                Dim objControl As Control = objPage.FindControl("ScriptManager")
                If Not objControl Is Nothing Then
                    objPage.Form.Controls.Remove(objControl)
                End If
            End If
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' 
        ''' Wraps a control in an update panel
        ''' 
        ''' 
        ''' 
        ''' 
        ''' 
        ''' -----------------------------------------------------------------------------
        Public Shared Function WrapUpdatePanelControl(ByVal objControl As Control, ByVal blnIncludeProgress As Boolean) As Control
            Dim updatePanel As New UpdatePanel()
            updatePanel.ID = objControl.ID & "_UP"
            updatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional

            Dim objContentTemplateContainer As Control = updatePanel.ContentTemplateContainer

            For i As Integer = 0 To objControl.Parent.Controls.Count - 1    'find offset of original control
                If objControl.Parent.Controls(i).ID = objControl.ID Then    'if ID matches
                    objControl.Parent.Controls.AddAt(i, updatePanel)       'insert update panel in that position
                    objContentTemplateContainer.Controls.Add(objControl)    'inject passed in control into update panel
                    Exit For
                End If
            Next

            If blnIncludeProgress Then
                'create image for update progress control
                Dim objImage As System.Web.UI.WebControls.Image = New System.Web.UI.WebControls.Image()
                objImage.ImageUrl = "~/images/progressbar.gif"  'hardcoded
                objImage.AlternateText = "ProgressBar"

                Dim updateProgress As New UpdateProgress
                updateProgress.AssociatedUpdatePanelID = updatePanel.ID
                updateProgress.ID = updatePanel.ID + "_Prog"
                updateProgress.ProgressTemplate = New UI.WebControls.LiteralTemplate(objImage)

                objContentTemplateContainer.Controls.Add(updateProgress)
            End If

            Return updatePanel
        End Function

#End Region

#Region "Obsolete Methods"

         _
        Public Shared Function ContentTemplateContainerControl(ByVal objUpdatePanel As Object) As Control
            Return TryCast(objUpdatePanel, UpdatePanel).ContentTemplateContainer
        End Function

         _
        Public Shared Function CreateUpdatePanelControl() As Control
            Dim updatePanel As New UpdatePanel()
            updatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional
            Return updatePanel
        End Function

         _
        Public Shared Function CreateUpdateProgressControl(ByVal AssociatedUpdatePanelID As String) As Control
            Dim updateProgress As New UpdateProgress
            updateProgress.ID = AssociatedUpdatePanelID + "_Prog"
            updateProgress.AssociatedUpdatePanelID = AssociatedUpdatePanelID
            Return updateProgress
        End Function

         _
        Public Shared Function CreateUpdateProgressControl(ByVal AssociatedUpdatePanelID As String, ByVal ProgressHTML As String) As Control
            Dim updateProgress As New UpdateProgress
            updateProgress.ID = AssociatedUpdatePanelID + "_Prog"
            updateProgress.AssociatedUpdatePanelID = AssociatedUpdatePanelID
            updateProgress.ProgressTemplate = New UI.WebControls.LiteralTemplate(ProgressHTML)
            Return updateProgress
        End Function

         _
        Public Shared Function CreateUpdateProgressControl(ByVal AssociatedUpdatePanelID As String, ByVal ProgressControl As Control) As Control
            Dim updateProgress As New UpdateProgress
            updateProgress.ID = AssociatedUpdatePanelID + "_Prog"
            updateProgress.AssociatedUpdatePanelID = AssociatedUpdatePanelID
            updateProgress.ProgressTemplate = New UI.WebControls.LiteralTemplate(ProgressControl)
            Return updateProgress
        End Function

         _
        Public Shared Function IsHostEnabled() As Boolean
            Return True
        End Function

         _
        Public Shared Function ScriptManagerControl(ByVal objPage As Page) As Control
            Return objPage.FindControl("ScriptManager")
        End Function

         _
        Public Shared Sub SetScriptManagerProperty(ByVal objPage As Page, ByVal PropertyName As String, ByVal Args() As Object)
            Dim scriptManager As ScriptManager = GetScriptManager(objPage)
            If scriptManager IsNot Nothing Then
                Reflection.SetProperty(scriptManager.GetType(), PropertyName, scriptManager, Args)
            End If
        End Sub

#End Region

    End Class
End Namespace


Now once you recompile, take the newly created DotNetNuke.dll and add it to your current project and run it.

Monday, October 3, 2011

How to completely remove a corrupt installation of Visual Studio 2010

The other day I logged into my machine and went to open a Visual Studio 2010 project. When Visual Studio 2010 launched I got an error telling me that my installation of Visual Studio 2010 was not fully installed. Very odd I hadn't installed anything and I have run Visual Studio 2010 many times in the last few weeks.

Well needless to say I had to try to uninstall and reinstall Visual Studio 2010. While this may seem simple, it didn't go so well. First, when I tried to uninstall Visual Studio 2010 it would get halfway through and then would say the installer could not complete and had encoutered an error. Next, when I tried to remove SP1, that would also fail. After many attenmpts I finally removed most of it. It was now no longer showing in programs and features.

I then thought everything was fine, so I tried to reinstall Visual Studio 2010. Well this didn't go very well. It would get 1/3 of the way through the installation and it would then give some unknown error and stop.

After some research I came by Visual Studio 2010 Uninstall Utility, I uploded it to One Drive since Micrososft removed the file and page from their site. I have scanned it for viruses and Malware and it is cleaned. The name of the file is VS2010_Uninstall-RTM.ENU.exe. It can be downloaded from here:

https://onedrive.live.com/?cid=394923f8264b10f7&id=394923F8264B10F7%211220

This handy little tool did not only run successfully, but it completely removed and uninstalled Visual Studio 2010 and all it's installed modules.

The Visual Studio 2010 Uninstall Utility can be run in 3 different modes:

Default (VS2010_Uninstall-RTM.ENU.exe)
Uninstalls all top level products of 2010 release and its supporting components. This mode does not remove Visual Studio components shared with previous product releases (e.g. Visual Studio 2008) or system level updates such as Microsoft .NET Framework 4.0.

Full (VS2010_Uninstall-RTM.ENU.exe /full)
Removes Visual Studio 2010 and supporting products, including components shared with previous versions of Visual Studio. Note: may break features of previous versions of Visual Studio installed on the machine. This option does not remove Microsoft .NET Framework 4.0 from the machine.

Complete (VS2010_Uninstall-RTM.ENU.exe /full /netfx)
Removes entire set of Visual Studio 2010 and supporting products, including Microsoft .NET Framework 4.0 and components shared with previous versions of Visual Studio. Note: may break features of previous versions of Visual Studio or other products taking dependency on Microsoft .NET Framework 4.0.



Thursday, September 29, 2011

Do not disable Superfetch in Windows 7 for Speed improvements EVER

Many of us at some time or another feel that our system has slowed down and it would be best to do some tweaks. Well my Windows 7 installation is over a year old and I have worked with 100s of projects on it and installed a lot of supporting software. So after following much advice on the web to try to speed up Visual Studio and Windows 7, it didn't get much faster.
 I eventually came across a discussion about SuperFetch and the benefits of keeping it enabled, yet most of the other info out there had recommended disabling it. Well I have had SuperFetch disabled for some time, most likely pre- Windows 7 SP1.
Today I enabled it again, holy crap did it make a difference. Took a full two minutes off my boot time and applications do seem to load faster. Let alone my Visual Studio project I am currently working in, which is quite large, is no longer hanging telling me Visual Studio is not responding.
So please, learn from my mistake, research all tweaks before you go off some bloggers advice. Do not disable SuperFetch in Windows 7!!!!!

Friday, September 16, 2011

Error in DotNetNuke after Upgrade to 5.6.3 The file '/Admin/Users/Profile.ascx'


Recently I upgraded a DotNetNuke Project to 5.6.3. After the upgrade everything seemed fine. When I went into Visual Studio 2008 SP1 and opened the website and tried to compile I got a few errors. The main error that plagued me was: Error 3 The file '/Admin/Users/Profile.ascx' does not exist. \admin\Users\ViewProfile.ascx 2 .

I noticed the upgrade basically cleared out the /admin/users folder, except left the ViewProfile control. This seems to reference a control with the tag name “profile”.

To get around this error, simply delete the ViewProfile.aspx and it's code behind. Recompile and you should be fine.

How to solve Micrososft SQL Server 2008 R2 Error: 1813

Recently I had a machine go down. I was able to get into recovery mode and transfer off most of the files. When I rebuilt the machine and reinstalled SQL server, I tried to attached my old database from the backup I took.

When I went to attach my log file I got the following error:

Attach database filed for Server 'SERVERNAME\INSTANCE'. (Microsoft.SqlServer.Smo)

Additional Information:
An excepetion occured while excuting a Trasact-SQL statement or batch.
(Microsoft.SQLServer.ConnectionInfo)

Could not open new database 'YOURDATABASENAME'. CREATE DATABASE is aborted.
File activation failure. The physical file name 'LOG FILE LOCATION' may be incorrect. The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environmental failure. (Microsoft SQL Server, Error: 1813)


Unfortunatly, the SQL log file was currupt and I didn't have a copy due to the server going down. So now what!?!?


The Solution:

Create a new database with the same exact name.

CREATE DATABASE YOURDATABASENAME
GO

Now stop Micrososft SQL Server.
Replace the MDF file with the old MDF file.
Start Micrososft SQL Server.

If everything went well the database should be in "Suspect" mode, which you check by running this:

SELECT DATABASEPROPERTYEX ('YOURDATABASENAME', 'STATUS') AS 'Status';
GO

Your database should now be in 'SUSPECT' mode.

Let's put her in emergency mode:

ALTER DATABASE YOURDATABASENAME SET EMERGENCY;
GO

Then single user mode:

ALTER DATABASE YOURDATABASENAME SET SINGLE_USER;
GO

And Finally:
DBCC CHECKDB (YOURDATABASENAME, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO



Buy Me a Beer

Tuesday, September 13, 2011

DotNetNuke Upgrade Paths

I was poking around to find the proper upgrade path for upgrading DotNetNuke. I found this post by Will Strohl:

http://www.willstrohl.com/Blog/EntryId/102/Suggested-DotNetNuke-Site-Upgrade-Path-s

Which shows the following chart:

From VersionTo Version
02.00.04External Link02.01.02External Link
02.01.02External Link03.01.01External Link
03.01.01External Link03.02.02External Link
03.02.02External Link04.03.07External Link *
04.03.07External Link04.04.01External Link
04.04.01External Link04.06.02External Link
04.06.02External Link04.09.05External Link
04.09.05External Link05.04.04External Link **
05.04.04External Link05.05.00External Link
05.05.00External Link05.06.02External Link



Upgrade URL to fire the install:
YOURDOMAIN/install/install.aspx?mode=Install

I was currently working with version 4.9.1 for our client and going from one version to another just seemd like such a pain. Especially since the scripts sometimes fail for no reason and when run again, run fine. So I went from 4.09.01 to 5.06.02 and the script ran but the HTML_Community core module kept failing durring the upgrade, it was the only failure in my logs.

I found the error eventually, and it turns out one of our vendors had added a Full Text Index on the HTML_Text table. Once I removed the FULL TEXT from the table and reran the upgrade, direct from 4.9.1 to 5.6.3, it ran without any errors at all.

While I believe the upgrade path is good advice if you have issues, I would recommend doing a direct upgrade to the latest first, if you get errors then follow the upgrade path, elsewise, save yourself some time and try the latest stable version upgrade first.

Saturday, August 13, 2011

Navigation to the webpage was cancelled and cannot view CHM help file in Windows 7

I was having a hard time viewing some documentation sent to me on an installation deployment. I was sent a .chm file. When I tried to open the chm help file I would see the index, but on the right side I would see “Navigation to the webpage was canceled". I then decided to check the properties of the file and noticed this button called unblock file. Once I clicked this I then hit OK and opened the chm file again and I could now view the file.

So to view html compiled help files in Windows 7 you may have go into the properties and unblock the file.

Sunday, August 7, 2011

TF255324: The specified database already exists. While installing Team Foundation Server 2010

[ Reporting ] TF255272: The database for SQL Server Analysis Services could not be verified. The problem is: TF255324: The specified database already exists. The database name is Tfs_Analysis.
That was the error I kept from reporting services during the Team Foundation Server 2010 readiness check.

You must go into SQL Management studio and connect to SQL Analysis Services Server and delete this database to proceed. This can be done by the following:

Open the SQL Services Management Studio. When the connection prompt comes up simply select SQL Analysis Services. Select your server and log in.Expand mthe cube and right click the Database and delete.

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

Friday, August 5, 2011

Installing Microsoft Team Foundation Server 2010

OK, for the last few days I have been installing Microsoft Team Foundation Server 2010.

I will try to sum up what I have seen thus far and what to do.

First thing is make sure you have all current Microsoft Updates: http://update.microsoft.com .

On my server I have Microsoft® SQL Server® 2008 R2 SP2 installed. You can use SQL server express if you would like, make sure to get the advanced services though, as reporting services and a many other tools:

Microsoft® SQL Server® 2008 Express with Advanced Services:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1842

Make sure to run Microsoft Update to apply any updates needed after the install of Microsoft® SQL Server® 2008
Here is a direct link for Microsoft SQL Server 2008 Service Pack 2:
http://www.microsoft.com/download/en/details.aspx?id=12548

Also you will need Microsoft SharePoint Services. You can also use Microsoft SharePoint Server, but for this I will use Windows SharePoint Services 3.0 with Service Pack 2 which can be downloaded from here:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20614

Now do all your updates again.
Since this machine is 64-bit, I got an error right off the bat, telling me that I could not install Microsoft SharePoint Services x64.
It is summed up here, this tells you how to disable IIS 32-bit emulation mode:
http://jamesecampbell.blogspot.com/2011/08/sharepoint-services-30-install-error.html
Now, make sure SQL Reporting service is configured and accessible.

This can be done using the Reporting Services Configuration Tool:
http://msdn.microsoft.com/en-us/library/ms156305.aspx

OK, now you are ready to install Microsoft Team Foundation Server 2010.






Monday, August 1, 2011

Sharepoint Services 3.0 Install error Windows 2008n R2 SP1 x64

Today I was trying to install Sharepoint Services 3.0 with SP2 on a Windows 2008 R2 X64 machine. Setup would not run as I got the error:

Setup is unable to proceed due to the following error(s):
Internet Information Services is running in 32-bit emulation mode.
Correct the issue(s) listed above to re-run setup.

So basically it looks like by default Internet Information Services is installed in 32 bit-emulation mode.

To disable this you simply need to do the following:

open a command line
copy and paste the following-
CScript "%SystemDrive%\InetPub\AdminScripts\adsutil.vbs" set w3svc/AppPools/Enable32bitAppOnWin64 0

Then type IISreset

Then try to re-run setup for Sharepoint Service 3.0 with SP2

If you need the link for Sharepoint Services 3.0 with SP2 X64:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5719

Thursday, July 21, 2011

Issues with GoDaddy Hosting

I just want to let anyone who is looking to GoDaddy.com hosting Do not do it if you need to use email on your server. They force you to use their SMTP relay which is very unreliable and when you call for support they just run you around and they will not even chek their logs to find out why their SMTP relay eats emails. Don't count on GoDaddy.com as your users will not get their emails. Let me also add their server support does not allow you to talk to someone on the phone. Here is an example of how bad it is, we have since moved all our servers to another hosting provider that I can get good support and not forced to use an SMTP relay, which BTW can also cause emails to be flagged as spam as the headers can flag invalid host using GoDaddy. Here is my nightname sumed up in a chat window talking to GoDaddy Server Support team(only way you can talk to someone)


Thank you for contacting Live Chat support for Virtual and Dedicated Servers. This is Amanda. How can I help you?
me: We have been having issue with outgoing mail. The latest issue is email are not going out, even though the email is passed ...to your server, please explain what is going on. As an example the email sent to email@hotmail.com @ 11:12:22AM was never received.
Amanda W. - Server Concierge: What time is it for your currently?
me: not in spam
me: EST
me: 11:20am
Amanda W. - Server Concierge: It can take up to an hour for messages to send from the relay server, and this is not considered unusual.
me: Another email was 7/18/2011 4:04:01 PM around< To justin@email.com
Amanda W. - Server Concierge: Are the messages present in your mail queue?
me: no Amanda that isn't the case
me: I have been testing for days
me: some emails are coming through
me: no, the handshake shows your server accepting the emails
me: where they go from there, only you can tell me
Amanda W. - Server Concierge: Do the messages that do not go through have anything in common?
me: yes
me: and
me: no
me: the one I sent had the same subject as one I sent about 3 minutes before
me: got the first , not the second
me: why does it matter? I gave you exact times, can't you just check logs?
me: and yesterday there was only one email and he never got it
Amanda W. - Server Concierge: No, I cannot.
Amanda W. - Server Concierge: I would need more information,such as the subject, to investigate.
me: subject for the email today at 11:22:22AM EST had the subject of drop
me: sent to email@hotmail.com
Amanda W. - Server Concierge: Have you received any bounce errors?
me: yesterday the subject of the email was question
me: how would there be a bounce, I got an email right before same address, I am not an idot, check your logs, your server is doing something
me: and no, no bounce
Amanda W. - Server Concierge: As stated previously, we would need more information to investigate this issue, such as errors returned by mail, common subjects, or common links in failed messages.
me: OK, email is showing passed to your server, no errors, no nothing
me: Gave you exact times
me: exact subject sent to
me: All sent from justin@email.com
me: as if you server never sends them
me: no kickback
me: no ndr
me: no errors
Amanda W. - Server Concierge: email.com is not pointed to the server, so sending messages from the server with this as the from address may trigger spam blocks for spoofing.
me: fine, but again, no email in spam folders
me: and I get most emails
me: I have been testing this for over a week
me: instead of guess, check your logs...
me: please
me: bad enough you force us to use this SMTP relay
Amanda W. - Server Concierge: I am sorry, but we cannot do that.
me: Why not, you just asked me for the subject and times
me: you told me you needed more info
Amanda W. - Server Concierge: With more information, we may be able to find a reason the messages might be failing.
me: you are about to lose a client who has been your client for years. I have given you enough info. Time we start looking for another host if you cannot even support your services
me: What more info could you need
me: I gave you exact time
me: subject
me: from
me: to
me: body, same subject
me: Every email server has a log, if you do not have access, find someone who can
me: We are not running an email server on the server
Amanda W. - Server Concierge: As stated several times, we cannot check SMTP logs to see why messgaes are not sending. If messages with a common subject fail, avoiding that subject may be advisable, and avoiding sending mail from domains that do not point to the server is always advisable.
me: just check one email box
me: useless... thanks for nothing...

Friday, July 15, 2011

How to stop duplicate emails in email2db

Hey all,
I was having issues where sometimes within my triggers and multiple back and forths with the email2db that my triggers would fire over and over. For example:
I have a trigger called test. I have a second trigger called test 2.
First email is sent with this in the body : "We are going to start the test tomorrow"
End User gets reply
End User replies and hits reply in their client:
Hey I am more interested in test 2

-----Original Message-----
From: Parker Software Ltd [mailto:user@domain.com]
Sent: Friday, July 15, 2011 3:31 AM
To: Vecdid
Subject: test

We are going to start the test tomorrow
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Now, by default email2db will reply to both triggers now. I do not want the same email with the same trigger going to the same user, makes no sense. So, I came up with the follow script I thought I would share and save someone else the time. Add this to your condition script and no dupes should ever happen.
Please note I am not using the built in database, I configured email2db to use SQL Server.
Enjoy:
Sub Main()
Dim blnDupe As Boolean
Dim strConnectionString As String
Dim strTriggerID As String
Dim strSQL As String
Dim objcon
Dim objRS


blnDupe = False
If InStr(1,MSG_Body,"MYTRIGGERPHRASE")Then
Set objcon = CreateObject("ADODB.Connection")
strConnectionString = "Provider=SQLOLEDB.1;Data " & _
"Source=MYSQLSERVER;Initial Catalog=Email2DB;user id = 'ID';password='PASSWORD'"
'Grab the trigger id from the Trigger table
strSQL = "Select TriggerID from Triggers where TriggerName = 'MYTRIGGERNAME"
objcon.Open strConnectionString
Set objRS = o.Execute(strSQL)
strTriggerID = objRS.Fields.Item(0)
objRS.Close
objcon.Close
'Check email2db table for existing reply to fromaddress by triggerID
objcon.Open strConnectionString
strSQL = "Select FromAddress from Email2DB where TriggerMatch = 1"
strSQL = strSQL + " And TriggerSuccess = 1 And TriggerID = '"
strSQL = strSQL + strTriggerID + "' AND FromAddress = '" + MSG_From + "'"

Set objRS = objcon.Execute(strSQL)
'Do we have a dupe by TriggerID/Email
Do Until objRS.EOF
blnDupe = True
objRS.MoveNext
Loop
objRS.Close
objcon.Close
'YOU MUST SET Email2DBTrigger, true fires any trigger actions and if you use a condition script all other conditions seem to be ignored
If blnDupe = True Then Email2DBTrigger = False
If blnDupe = False Then Email2DBTrigger = True
End If

Just a heads up, you may have to add to the triggerID lookup the accountID if you use multiple accounts.
So you would change this:
strSQL = "Select TriggerID from Triggers where TriggerName = 'MYTRIGGERNAME"
To this:
strSQL = "Select TriggerID from Triggers where TriggerName = 'MYTRIGGERNAME" AND AccountID = 'MYACCOUNTID'"

Friday, March 25, 2011

How to fix the Indexing Service in Windows 2003 Server R2 SP2 when it hangs

I was having some issues with Ektron CMS.NET and it's search API. While building and rebuilding Catalogs it started hanging the Indexing service. I read several posts that suggested deleting the catalogs, but I was not clear on all there locations as the IIS server has 39 websites. So after playing around a bit I found an easy way to delete these catalogs even when the service hangs from within the MMC.
Here are the steps:

• Open the MMC and expand the node for the index service.
• Now open the task manager (CTR+ALT+DEL)
• End task on CISVC.EXE
• Now run Services.msc
• Start the indexing services.
• Go back to your MMC instance and it should not be hanging anymore.

Now you can delete your catalogs, but note you must stop the service again if you want a copy of the catalog before you delete or move. I had t delete and recreate all mine and it no longer hung. It looks like one of my catalogs was corrupt.

Thursday, March 17, 2011

HTTPS SSL not working since making Google Chrome my default browser

Earn easy money advertising on your blog or website: Click Here to learn more.

I decided the other day to make Google Chrome browser my default web browser. I then noticed later in the day, any HTTPS site I visited, I got an error telling me the site was unavailable through any web browser.
I did Install IE 9 and did a few Windows Updates after installing Google Chrome.

I did a system restore in Windows 7. I went back prior to the IE9 install and after a reboot the problem still occurred.

I then figured since it was just HTTPS, SSL driven sites that there must be an issue with encryption. I went into Google Chrome to see what was going on and noticed that in the setting Use TLS 1.0 and SSL 3.0 were unchecked. Once I checked these SSL started to work.

To get to the settings for SSL and TLS, Click on the wrench. Then goto Settings on the menu. At the bottom of the form click show advanced settings. Scroll down to the Network section. Click on change proxy settings. Now the internet properties dialog comes up. Click the Advanced tab. Scroll down and you can set SSL and TLS there.
I cannot fathom why when making Google Chrome my default browser would affect all my other browsers SSL settings. Sounds strange but  by simply checking those two boxes for SSL 3.0 and TLS 1.0 fixed my issue with SSL driven sites.

Earn easy money advertising on your blog or website: Click Here to learn more.

Sunday, February 27, 2011

Easy way to copy Database and table data in Microsoft SQL server

For years I have always found issues importing and exporting data using Microsoft SQL server on the same SQL Server instance. I was very happy with the release of SQL server 2008 and the COPY database feature. This works really well and avoids all the IDENT inserts and other assorted foreign key issues.

Well I recently took on a project that used SQL Server Express 2008 R2. Unfortunately, the Copy database is not available in the express version and with the complex data structure of the database I was working with, I was unable to create a beta version for testing alongside the live database on the live server.

I tried to script everything out and that worked fine, but importing my data did not.

I tried to start with a fresh database and had some issues as keys and indexes did not come over.

So I decided to poke around and noticed that while doing a backup, you can also do a restore from a backup to another database. So I tried this, wow, I feel like an idiot. For over 15 years I always had issues copying databases and their data while retaining their structure on the same instance. I could always get it to where I wanted it, but there were always issues along the way with complex data structures.

This was so simple to just take a backup from the live database. Then restore that bak file to a database on the same server , on he same instance, I just provide the name.

Hope this saves someone the years of trouble it has caused me, sad thing it has always been right there, I just assumed it would be messed up due to file naming.

Steps to copy database to another database on the same SQL Server Express 2008 R2 Management Studio.

1: Right click on the database you want a copy of. Choose TASKS,then choose BACKUP. Click OK.

2: Right click the database folder/node, NOT A DATABASE, Choose TASKS, then RESTORE, then DATABASE. (Note: if you right click on the database, it will overwright that database, if you click on the database node you will get the option to name a new database)

3: Type in the name you want your new database to be named in the To Database text box.

4: Choose the FROM DATABASE, and then below check thebackup you want restored to. (NOTE: You must have a backup for he Original database to appear in this dropdown)

5: Click OK, and SMILE!!!

wasn't that easy!!!!

Amazon1