Gemini Community Support Site

This Gemini community support site can be used to find solutions to product issues. You can log in using Open Id, Google Profile and even Facebook. Feel free to ask a question or browse FAQs and documentation. Product tour videos are also available along with how-to videos demonstrating key Gemini capabilities.




Upgrading from 2.0 to 2.02

web-app

I have upgraded Gemini 2.0 to 2.02 and all seems to be work except for creating an new issuse. When you select Create Issue the following error occurs.

Object reference not set to an instance of an object.

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.NullReferenceException: Object reference not set to an instance of an object.

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.
Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   Gemini.RichTextCtrl.SetVisibleControl() +164
   Gemini.RichTextCtrl.Page_Load(Object sender, EventArgs e) +95
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   Gemini.BaseControl.OnLoad(EventArgs e) +68
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Control.LoadRecursive() +98
   System.Web.UI.Control.LoadRecursive() +98
   System.Web.UI.Page.ProcessRequestMain() +750

Version Information: Microsoft .NET Framework Version:1.1.4322.2300; ASP.NET Version:1.1.4322.2300

 

I have created a new clean install and have determined the problems to be in the database not missing or corrupted files.

Is there a bug in the upgrade? How can I correct the problem? Your help is greatly appreciated and urgently needed.

Thank you.

DBS
· 1
DBS
Replies (13)
helpful
0
not helpful

Hi,

Can you please clarify a few things?

  1. Does this occur after you enter the new issue details and click "Create" or when you click on the "Create Issue" link?
  2. When you did a new clean install to which database did you point this install to? Did everything work ok?

 


Mark Wing
· 9108
Mark Wing
helpful
0
not helpful

On the upgrade it's the "Create Issue" link that goes to /issue/CreateIssue.aspx?pi=1

What I did is once the new install with a new db was up and runing I changed the SQL connetion to point to the old one and got the same error. I then pointed the upgrade to point to the clean db and it works.


DBS
· 1
DBS
helpful
0
not helpful

When upgrading the database, did you run the create_procs.sql script?


Saar Cohen
· 5000
Saar Cohen
helpful
0
not helpful

I ran the upgrade script only, I thought the other scripts were for new installs only.


DBS
· 1
DBS
helpful
0
not helpful

The create_procs.sql must be run at the end of the database upgrade, even if there were no upgrade scripts. Please run it.


Saar Cohen
· 5000
Saar Cohen
helpful
0
not helpful

Ok I ran the create sprocs script and got the following error afterwards;

Cannot add rows to sysdepends for the current stored procedure because it depends on the missing object 'geminiprojreposdeletenode'. The stored procedure will still be created.

Now when I click on Create Issuse I get the same server error.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   Gemini.RichTextCtrl.SetVisibleControl() +164
   Gemini.RichTextCtrl.PageLoad(Object sender, EventArgs e) +95
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   Gemini.BaseControl.OnLoad(EventArgs e) +68
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Control.LoadRecursive() +98
   System.Web.UI.Control.LoadRecursive() +98
   System.Web.UI.Page.ProcessRequestMain() +750


DBS
· 1
DBS
helpful
0
not helpful

You seem to indicate that the problem is with the database, can you please try and point the upgraded Gemini to a new database? Does it work?


Mark Wing
· 9108
Mark Wing
helpful
0
not helpful

Thanks for the reply. I have already done that and that's why i feel the problem lies with in the db. I have 2 version running, one upgrade (we can call it dbU), one clean install (dbN) when I point the dbU to the dbN it works fine but when I point dbN to dbU I get the same error so therefore I know it's not a corupted or missing file.


DBS
· 1
DBS
helpful
0
not helpful

Can you paste your web.config file?


Harvey Kandola
· 212
Harvey Kandola
helpful
0
not helpful

<?xml version="1.0" encoding="Windows-1252" ?>
<configuration>
 <configSections>
  <sectionGroup name="GeminiPlugins">
   <section name="MailPlugin" type="System.Configuration.NameValueFileSectionHandler,System,Version=1.0.3300.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
  </sectionGroup>
  <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
 </configSections>
 <!-- **************-->
 <!--
**************-->
 <!-- Gemini application settings go here -->
 <!-- **************-->
 <!--
**************-->
 <GeminiPlugins>
  <MailPlugin>
   <!-- SMTPServer - specify IP number or machine name -->
   <add key="SMTPServer" value="12.165.250.135" />
   <!-- SMTP authentication values: OFF, BASIC, NTLM. -->
   <add key="SMTPAuthentication" value="Basic" />
   <add key="SMTPUserName" value="domain\admin" />
   <add key="SMTPPassword" value="gemini" />
   <!-- Global email alert type on/off settings -->
   <add key="IssueCreateAlert" value="true" />
   <add key="IssueUpdateAlert" value="true" />
   <add key="IssueCommentAlert" value="true" />
   <add key="IssueStatusChangeAlert" value="true" />
   <add key="IssueResolutionChangeAlert" value="true" />
   <add key="IssueDeleteAlert" value="true" />
   <add key="IssueAssignedAlert" value="true" />
   <add key="IssueClosedAlert" value="true" />
   <add key="IssueResolvedAlert" value="true" />
   <add key="IssueWatcherAlert" value="true" />
   <!-- Options -->
   <add key="FromEmailAddress" value=admin@domain.com />
   <add key="Debug" value="false" />
   <add key="SendAlerts" value="true" />
   <!-- Email encoding values: ASCII, DEFAULT, UNICODE, UTF7, UTF8. -->
   <add key="Encoding" value="UTF8" />
   <!-- TemplateEngine values: NVELOCITY, STRINGTEMPLATE -->
   <add key="TemplateEngine" value="NVELOCITY" />
   <!-- TemplatesPath: Optional setting that can contain absolute path to "templates\mail" folder
     - leave empty to let Gemini work it out
     - or, specify full path , e.g. "c:\inetpub\wwwroot\gemini\templates\mail\"
   -->
   <add key="TemplatesPath" value="" />
  </MailPlugin>
 </GeminiPlugins>
 <nhibernate>
  <!-- The SQL Server dialect (Gemini supports "MsSql2000Dialect" or "MsSql7Dialect") -->
  <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
  <!-- The SQL Server database connection string -->
  <add key="hibernate.connection.connectionstring" value="data source=localhost;initial catalog=gTaskHW;user id=sa;password=xxxxxxxxxxxxxxxxxxxxx" />
  <!-- Misc -->
  <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
  <add key="hibernate.connection.driver
class" value="NHibernate.Driver.SqlClientDriver" />
 </nhibernate>
 <appSettings>
  <!-- OrganisationName - Name of your organisation -->
  <add key="OrganisationName" value="PTI-Engineering Hardware" />
  <!-- RegisteredTo - The email address of whom the product is registered to -->
  <add key="RegisteredTo" value="my email" />
  <!-- RegistrationCode - The product registration keycode as provided by CounterSoft -->
  <add key="RegistrationCode" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
  
  <!-- FullGeminiURL - requires trailing forward-slash! -->
  <add key="FullGeminiURL" value="http://Web/gTask/hw2/" />
  <!-- GeminiAdmins - Email address for Gemini administrators -->
  <add key="GeminiAdmins" value=admin@domain.com />
  
  <!-- WelcomeTitle - Commercial Licensees only !! -->
  <add key="WelcomeTitle" value="Welcome" />
  <!-- WelcomeMessage - Commercial Licensees only !! -->
  <add key="WelcomeMessage" value=" Engineering Hardware gTask Tracking." />
  <!-- DateFormat - "EU" or "US" -->
  
  <!-- DateFormat - "EU" or "US" -->
  <add key="DateFormat" value="US" />
  <!-- TimeInWorkingDay - specify as HH:MM (example "7:30" which equals 7 hours 30 minutes) -->
  <add key="TimeInWorkingDay" value="7:30" />
  <!-- WebServicesAccessCode - Security code that must be used when using Gemini web services -->
  
  <!-- WebServicesAccessCode - Security code that must be used when using Gemini web services -->
  <add key="WebServicesAccessCode" value="ABC123" />
  <!-- WinWebServicesAccessCode - Security code that must be used by Gemini Desktop application -->
  <add key="WinWebServicesAccessCode" value="WIN123" />
  <!-- UseAccessCodeForSourceControl - Should we authenticate access to the AddSCFile.aspx? -->
  <add key="UseAccessCodeForSourceControl" value="yes" />
  
  <!-- GlobalAssignResourceAtIssueCreation
    - Controls if ALL USERS can assign resource to an issue during issue creation
    - Possible values = "YES" or "NO"
    - If this is set to YES, then ANY USER can assign a resource to an issue during issue creation
  -->
  <add key="GlobalAssignResourceAtIssueCreation" value="Yes" />
  <!-- AutoAlertForIssueCreator
    - Controls if the user creating an issue is automatically an ISSUE WATCHER (get issue alerts)
    - Possible values = "YES" or "NO"
    - If this is set to YES, then alerts will be sent to issue creators whenever the issue is updated
  -->
  <add key="AutoAlertForIssueCreator" value="Yes" />
  <!-- AutoAlertForIssueResource
    - Controls if the user working on an issue is automatically an ISSUE WATCHER (get issue alerts)
    - Possible values = "YES" or "NO"
    - If this is set to YES, then alerts will be sent to issue workers whenever the issue is updated
  -->
  <add key="AutoAlertForIssueResource" value="NO" />
  
  <!-- ShowUserRegistrationLink
    - controls whether the logon page displays a link that would allow anyone to register as a member.
    - possible values = "YES" or "NO"
  -->
  
  
  <add key="ShowUserRegistrationLink" value="YES" />
  <!-- AllowAnonymousUsers- Controls if anonymous users can access Gemini (e.g. no logon required)
           - If this is set to YES, then anyone can view and use Gemini without logging-in
  -->
  <add key="AllowAnonymousUsers" value="YES" />
  
  <!-- ViewAllProjects  - Are all projects visible to everyone?
    - Setting this option to "NO" will mean you can control visibility of projects at user level
  -->
  <add key="ViewAllProjects" value="YES" />
  
  <!-- AlwaysShowGeminiStats - Controls if the Gemini statistics panel is always shown on the main page
    - By default, the stats panel is only visible if you are an admin user or ViewAllProjects=YES
  -->
  <add key="AlwaysShowGeminiStats" value="NO" />
  
  <!-- ResetPasswordSubject - The email subject line used for sending password reset requests -->
  <add key="ResetPasswordSubject" value="Gemini Password Reset Request" />
  <!-- ResetPasswordMessage - The email message used for sending password reset requests -->
  <add key="ResetPasswordMessage" value="Please click on the link below to reset your Gemini password." />
  <!-- When creating a new user, you can send a reset password request:
   - AUTO      = Will always send reset password.
   - BLANK     = Will send a reset password only if password is blank.
   - NEVER     = Will not send a reset password.
  -->
  <add key="NewUserResetPassword" value="BLANK" />
  
  <!-- IssueDescriptionType - Possible values: Text, FreeTextBox or RichText -->
  <add key="IssueDescriptionType" value="RichText" />
  <!-- IssueCommentType - Possible values: Text, FreeTextBox or RichText-->
  <add key="IssueCommentType" value="RichText" />
  
  <!-- PluginPath - path to plugin directory under bin folder (required) -->
  <add key="PluginPath" value="bin/plugins" />
  <!-- DictionaryFolder - Location of the spell check files -->
  <add key="DictionaryFolder" value="dic" />
  <!-- Default Project Repository File Click Behaviour (None or View) -->
  <add key="ProjReposFileClick" value="None" />
  <!-- EnableHTMLPosts - Controls if HTML tags can be entered into text boxes -->
  <add key="EnableHTMLPosts" value="YES" />
  <!-- CharSetForExcel - The character set used when exporting issues to Excel -->
  <add key="CharSetForExcel" value="ISO-8859-1" />
  
  <!-- Make a never expired session (refresh in seconds) -->
  <add key="SessionRefresher" value="600" />
 
  <!-- Single Sign On [method of passing user credentials (SSO.aspx)]
    - DBHASHED= This is taking the actual password as it is on the DB (converted to base 64 string) and hash it with a key that is in the web.config (SSOKey).
    - DB      = This is taking the actual password as it is on the DB (converted to base 64 string).
    - HASHED  = This is taking the clear text password and hash it with a key that is in the web.config (SSOKey, see below).
    - PLAIN   = This is just sending the password as clear text.
   -->
  <add key="SSOPasswordType" value="DB" />
  <add key="SSOKey" value="hw" />
 </appSettings>
 <system.web>
  <compilation defaultLanguage="c#" debug="false" />
  <!--  CUSTOM ERROR MESSAGES
          Set customError mode values to control the display of user-friendly
          error messages to users instead of error details (including a stack trace):

          "On" Always display custom (friendly) messages 
          "Off" Always display detailed ASP.NET error information.
          "RemoteOnly" Display custom (friendly) messages only to users not running
          on the local Web server. This setting is recommended for security purposes, so
          that you do not display application detail information to remote clients.
    -->
  <customErrors mode="RemoteOnly" />
  <!--  AUTHENTICATION  (Gemini possible modes are "Windows", "Forms") -->
  <authentication mode="Windows">
   <forms name="hw" loginUrl="Default.aspx" path="/"></forms>
  </authentication>
  <authorization>
   <deny users="?"></deny>
  </authorization>
  <!--  APPLICATION-LEVEL TRACE LOGGING
          Application-level tracing enables trace log output for every page within an application.
          Set trace enabled="true" to enable application trace logging.  If pageOutput="true", the
          trace information will be displayed at the bottom of each page.  Otherwise, you can view the
          application trace log by browsing the "trace.axd" page from your web application
          root.
    -->
  <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
  <!--  SESSION STATE SETTINGS
          By default ASP .NET uses cookies to identify which requests belong to a particular session.
          If cookies are not available, a session can be tracked by adding a session identifier to the URL.
          To disable cookies, set sessionState cookieless="true".
         
          InProc
          SQLServer (http://support.microsoft.com/default.aspx?kbid=317604)
          StateServer
    -->
  <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=sa"
   cookieless="false" timeout="20" />
  <!--  GLOBALIZATION - This section sets the globalization settings of the application. -->
  <globalization culture="en-US" uiCulture="en-US" requestEncoding="utf-8" responseEncoding="utf-8" />
  <!-- File Upload Settings -->
  <httpRuntime executionTimeout="90" maxRequestLength="44096" useFullyQualifiedRedirectUrl="false" />
  <!-- The following blockers only come into affect if IIS is also configured
   http://support.microsoft.com/?kbid=815152
 -->
  <httpHandlers>
   <add type="System.Web.HttpForbiddenHandler" path=".xsl" verb="" />
   <add type="System.Web.HttpForbiddenHandler" path=".vm" verb="" />
   <add type="System.Web.HttpForbiddenHandler" path=".log" verb="" />
   <add type="System.Web.HttpForbiddenHandler" path=".config" verb="" />
   <add type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox" path="FtbWebResource.axd"
    verb="GET" />
  </httpHandlers>
  <!-- This allows HTML text to be entered into Gemini -->
  <pages validateRequest="true" enableSessionState="true" enableViewState="true" enableViewStateMac="true" />
  <browserCaps>
   <!-- GECKO Based Browsers (Netscape 6+, Mozilla/Firebird, ...) //-->
   <case match="^Mozilla/5.0 ([^)]) (Gecko/[-\d]+)? (?'type'[^/\d])([\d])/(?'version'(?'major'\d+)(?'minor'.\d+)(?'letters'\w)).">
   browser=Gecko
   type=${type}
   frames=true
   tables=true
   cookies=true
   javascript=true
   javaapplets=true
   ecmascriptversion=1.5
   w3cdomversion=1.0
   css1=true
   css2=true
   xml=true
   tagwriter=System.Web.UI.HtmlTextWriter
   <case match="rv:(?'version'(?'major'\d+)(?'minor'.\d+)(?'letters'\w
))">
    version=${version}
    majorversion=${major}
    minorversion=${minor}
    <case match="^b" with="${letters}">
     beta=true
    </case></case></case>
   <!-- AppleWebKit Based Browsers (Safari...) //-->
   <case match="AppleWebKit/(?'version'(?'major'\d)(?'minor'\d+)(?'letters'\w))">
   browser=AppleWebKit
   version=${version}
   majorversion=${major}
   minorversion=0.${minor}
   frames=true
   tables=true
   cookies=true
   javascript=true
   javaapplets=true
   ecmascriptversion=1.5
   w3cdomversion=1.0
   css1=true
   css2=true
   xml=true
   tagwriter=System.Web.UI.HtmlTextWriter
   <case match="AppleWebKit/(?'version'(?'major'\d)(?'minor'\d+)(?'letters'\w
))( (KHTML, like Gecko) )?(?'type'[^/\d])/.$">
    type=${type}
   </case></case>
   <!-- Konqueror //-->
   <case match="Konqueror/(?'version'(?'major'\d+)(?'minor'.\d+)(?'letters'));\w(?'platform'[^)])">
   browser=Konqueror
   version=${version}
   majorversion=${major}
   minorversion=${minor}
   platform=${platform}
   type=Konqueror
   frames=true
   tables=true
   cookies=true
   javascript=true
   javaapplets=true
   ecmascriptversion=1.5
   w3cdomversion=1.0
   css1=true
   css2=true
   xml=true
   tagwriter=System.Web.UI.HtmlTextWriter
  </case>
  </browserCaps>
  <webServices>
   <soapExtensionTypes>
    <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
     priority="1" group="0" />
   </soapExtensionTypes>
  </webServices>
 </system.web>
 <location path="Register.aspx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="ForgotPassword.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="ResetPassword.aspx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="Error.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/Gemini.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="IssuesExcel.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="xproject/IssuesExcel.aspx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="admin">
  <system.web>
   <authorization>
    <deny users="?"></deny>
   </authorization>
  </system.web>
 </location>
 <location path="sc/AddSCFile.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="issue/StopWatch.aspx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="SSO.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/CustomFieldsWS.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/VersionsWS.asmx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/ComponentsWS.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/AuthWS.asmx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/GeminiLookUpsWS.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/IssuesWS.asmx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/ProjectsWS.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/GeminiWSE.asmx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <location path="webservices/TimeTracking.asmx">
  <system.web>
   <authorization>
    <allow users=""></allow>
   </authorization>
  </system.web>
 </location>
 <location path="Refresher.aspx">
  <system.web>
   <authorization>
    <allow users="
"></allow>
   </authorization>
  </system.web>
 </location>
 <microsoft.web.services2>
  <diagnostics />
  <security>
   <securityTokenManager type="CounterSoft.GeminiBiz.GeminiUsernameTokenManager, CounterSoft.GeminiBiz" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    qname="wsse:UsernameToken" />
  </security>
 </microsoft.web.services2>
</configuration>


DBS
· 1
DBS
helpful
0
not helpful

We are stumped!

You will have to ZIP and send us your database to our sales email address.

We will then look into it.


Harvey Kandola
· 212
Harvey Kandola
helpful
0
not helpful

Any luck with the problem?

When I look at the error log I get

Error Message Stack Trace Additional Info. Dated Could not find stored procedure 'geminigetallactiveprojects'. at CounterSoft.GeminiBiz.18b2290ddddeb155.b6ddc6b78c62bd78() at Gemini.Main.PageLoad(Object sender, EventArgs e)   6/13/2006 3:27:56 PM Could not find stored procedure 'geminigetallactiveprojects'. at CounterSoft.GeminiBiz.18b2290ddddeb155.b6ddc6b78c62bd78() at Gemini.Main.PageLoad(Object sender, EventArgs e)   6/13/2006 3:26:14 PM

 

and when I check the setting checker I get

FullGeminiURL The remote server returned an error: (401) Unauthorized.

What needs to be authorized?

 


DBS
· 1
DBS
helpful
0
not helpful

Does the stored procedure exist in the database?

If so, who is its owner?


Mark Wing
· 9108
Mark Wing