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.




Email Alert Issue

web-app

We downloaded Gemini 2.0.2, and tried to set up the email alerts. We have not been able to get the email alerts since 1.9.1 version of Gemini.

1. Use the MailPlugins.cs as suggested in one of the previous emails sent to you, but it never seemed to even get to the code.

 2. Created a new plugin as described in section 11.5 of the Gemini.pdf document. a. Below is the class used for creating the new plugin (the SendMail() method is a function that we are using in another project to send email) b. The dll was placed in the bin\plugins as suggested.

using System;

using CounterSoft.GeminiLib;

using System.Web.Mail;

namespace NavMailPlugin {

public class Mail : AbstractIssueListener {

         public Mail() {

          // // TODO: Add constructor logic here //

         }

         public override void IssueCreated(IssueEventArgs args)

         {

               try

                     { SendMail(); }

               catch

                  { GeminiHelper.LogMessage("this class was not created"); } }

          }

}

The settings for email alerts are true in the web.config as well as the application under the Email Alerts link.

Here is an entry of the error logs that were created during this process.

Cannot create an abstract class. at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at CounterSoft.GeminiBiz.GeminiEventDispatcher.LoadPlugins(String path)

3. We are able to send email using the email link from the site, as well as when watching an issue. Does anyone have any other suggestions for troubleshooting the email alerts.

Thanks,

Ramona

ramona
· 1
ramona
Replies (7)
helpful
0
not helpful

Hi Ramina,

You plugin code is incomplete. You need to implement every AbstractListener method:

  • IssueAssigned
  • IssueClosed
  • IssueCommented
  • IssueCreated
  • IssueDeleted
  • IssueProgressUpdated
  • IssueResolutionChanged
  • IssueResolved
  • IssueStatusChanged
  • IssueUpdated
  • IssueWatcherAdded
  • ProjectResourceAdded
  • ProjectResourceRemoved
  • UserCreated
  • UserDeleted

 


Mark Wing
· 9108
Mark Wing
helpful
0
not helpful

Hi Mark,

Thanks for the response. However, I am gettting the same exact error when I use the mailplugin provided with Gemini 2.0.2, which does have every AbstractIssueListener method implemented. Here is the error logged.

Cannot create an abstract class. at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at CounterSoft.GeminiBiz.GeminiEventDispatcher.LoadPlugins(String path) 2/8/2006 9:40:16 AM

I would have also expected that if I did not implement all of the AbstractIssueListner methods for my own plugin for my code not to have compiled.

Could there be an issue with the paths and how it's trying to load the dlls, or where I am placing the dlls? I have the dlls under the bin\plugins.

Thanks,

Ramona

 

 


ramona
· 1
ramona
helpful
0
not helpful

Hi,

The DLL shoudl reside in the BIN folder -- not in the PLUGINS folder.

 


Harvey Kandola
· 212
Harvey Kandola
helpful
0
not helpful

Thank you Harvey,

This is getting us much closer to getting the alerts. One suggestion is if you could update Gemini.pdf, section 11.5 which mentions that plugins should be created under the bin\plugins.

11.5 Creating a Plug-in

The following steps should be followed to create a custom assembly (DLL) that can listen and

handle Gemini events:

.
.
.

Simply compile your .NET Class Library project and place the resulting DLL into the web

applications “Gemini\Bin\Plugins” folder.

Is this mean new plugins created should be placed under Plugins folder, or the Bin directory should be the only one where plguins are placed?

Thanks,

Ramona


ramona
· 1
ramona
helpful
0
not helpful

Just to clarify: if you create plugins then they go as per the documentation (bin\plugins).

The exception is the MailPlugin that we provide -- this goes into the BIN folder.


Harvey Kandola
· 212
Harvey Kandola
helpful
0
not helpful

Hi Harvey:

We were able to get our alerts working great. However, we noticed the application was failing when attempting to create a connection to the database from the MailPlugin.cs.

I am not sure if this issue was due to the fact that we are using SSPI for our connection string, but in order to make it work we had to use a trusted connection.

The error we kept getting was that the Login fialed for user ('null'). Not associated with a trusted Sql Server connection.

We did have impersonate = true in the web.config, which is one of the reasons this error occurs. Is there a way to make the MailPlugin.cs work with SSPI rather than trusted connection?

Thanks,

Ramona

 

 


ramona
· 1
ramona
helpful
0
not helpful

Hi Ramona,

This is because the plugin is run under a different (local) user. This user can not be associated with a trusted connection (SSPI). See http://community.countersoft.com/forums/thread/190.aspx 

 


Saar Cohen
· 5000
Saar Cohen