wesnetdesigns / WESNet.DNN.Modules.ByInvitation

DNN module to extend and manage invitations to join as site users via an expedited registration process. Admins may bulk import data to create invitations in CSV, Excel, XML formats or from database table.
0 stars 0 forks source link

Error processing email #1

Open teambound opened 9 years ago

teambound commented 9 years ago

Hi

This issue has resurfaced. Had a user submit 3 invitations and this error shows up every time the scheduler runs

The following error occured during the creation, sending, management, or processing of site registration invitations: Date and Time of Error: 5/2/2015 8:03 AM

Website: Rheebo

Mail Manager Exception: Object reference not set to an instance of an object.

So I tried a test invitation and received and error on submission. By invitation is unavailable.

Nothing else in the event log. Any ideas on how to diagnose?

wesnetdesigns commented 9 years ago

I located and fixed the "Action must be one of . . . " Scheduler Error which you raised on the CodePlex project site. However, I am still not able to reproduce this null reference error which apparently occurs whenever the module's scheduler tries to automatically resend invitations which have not yet been accepted, rejected, or have expired. I have added more extensive exception handling/notification to the Mail Manager code and have built a new assembly file (WESNet.DNN.Modules.ByInvitation.dll) which I will push up to the project's repository here on GitHub in a few minutes. Is it possible for you to replace the WESNet.DNN.Modules.ByInvitation.dll assembly file currently located in the problem site's /bin folder with the one from the GitHub repository /bin folder? Then, please email me the complete text (do NO post for public view) of any error notifications that are generated. My email is bill (at) wesnetdesigns.com. Thanks!

teambound commented 9 years ago

Will do!

Sent from my iPhone

On May 8, 2015, at 9:22 AM, Bill Severance notifications@github.com wrote:

I located and fixed the "Action must be one of . . . " Scheduler Error which you raised on the CodePlex project site. However, I am still not able to reproduce this null reference error which apparently occurs whenever the module's scheduler tries to automatically resend invitations which have not yet been accepted, rejected, or have expired. I have added more extensive exception handling/notification to the Mail Manager code and have built a new assembly file (WESNet.DNN.Modules.ByInvitation.dll) which I will push up to the project's repository here on GitHub in a few minutes. Is it possible for you to replace the WESNet.DNN.Modules.ByInvitation.dll assembly file currently located in the problem site's /bin folder with the one from the GitHub repository /bin folder? Then, please email me the complete text (do NO post for public view) of any error notifications that are generated. My email is bill (at) wesnetdesigns.com. Thanks!

— Reply to this email directly or view it on GitHub.

wesnetdesigns commented 9 years ago

Although I have committed the changed code to GitHub, I have not yet been able to upload the new assembly as binary files are normally excluded from the project repository. Will advise when ready - most likely under the GitHub Releases for the project.

wesnetdesigns commented 9 years ago

It's up there . . . click on the "1 release" link just above the heavy green bar on the project's repository page here on GitHub then download the WESNet.DNN.Modules.ByInvitation.dll. Also, before replacing the existing dll in the site's /bin folder, please double check that it's version is 1.00.01 and not 1.00.00.

teambound commented 9 years ago

Hi Bill

Loaded the new dll and did a test. I believe that I found the null issue. When I am logged in as a normal user and do an invite (I have the options set to not ask for a username or roles) the module sends the invitation and the process appears to work ok. But if I am logged in as admin and do not enter a username the module throws that error and still sends the invitation. I suspect a blank user name would create the null condition.

I have been testing with the new dll. where would I see the error messages if there was a problem? in the notification?

Thanks for the help on this.

Carl

Carl Norloff President & CEO Rheebo, Inc. carl@rheebo.com 978-335-2420

LinkedIn: www.linkedin.com/in/cnorloff/ Facebook: www.facebook.com/MyRheebo

                       for local things that matter

244 Newburyport Turnpike, Rowley MA 01969


From: Bill Severance [mailto:notifications@github.com] Sent: Friday, May 08, 2015 10:05 AM To: wesnetdesigns/WESNet.DNN.Modules.ByInvitation Cc: teambound Subject: Re: [WESNet.DNN.Modules.ByInvitation] Error processing email (#1)

It's up there . . . click on the "1 releases" link just above the heavy green bar on the project's repository page here on GitHub then download the WESNet.DNN.Modules.ByInvitation.dll. Also, before replacing the existing dll in the site's /bin folder, please double check that it's version is 1.00.01 and not 1.00.00.

Reply to this email directly or view https://github.com/wesnetdesigns/WESNet.DNN.Modules.ByInvitation/issues/1#i ssuecomment-100241753 it on GitHub. https://github.com/notifications/beacon/AGoi5u1Yo6UvjjebRsWAi5tGdHq9-5fLks5 oHLn_gaJpZM4EOO9O.gif

teambound commented 9 years ago

Here is the latest error in the scheduler: By Invitation Scheduler WESNet_ByInvitation Invitation Scheduler DoWork Starting ea2bddca-9c7c-4553-8d6a-ddc236619dc7 WESNet_ByInvitation Notification Scheduler Failed: System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Entities.Urls.BasicFriendlyUrlProvider.GetFriendlyAlias(String path, String portalAlias, Boolean isPagePath) at DotNetNuke.Entities.Urls.BasicFriendlyUrlProvider.FriendlyUrl(TabInfo tab, String path, String pageName, String portalAlias) at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, Boolean isSuperTab, PortalSettings settings, String controlKey, String language, String pageName, String[] additionalParameters) at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, Boolean isSuperTab, PortalSettings settings, String controlKey, String language, String[] additionalParameters) at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, Boolean isSuperTab, PortalSettings settings, String controlKey, String[] additionalParameters) at DotNetNuke.Common.Globals.NavigateURL(Int32 tabID, PortalSettings settings, String controlKey, String[] additionalParameters) at WESNet.DNN.Modules.ByInvitation.InvitationInfo.BuildActionLinkUrl(String action) at WESNet.DNN.Modules.ByInvitation.InvitationInfo.GetProperty(String propertyName, String format, CultureInfo formatProvider, UserInfo accessingUser, Scope accessLevel, Boolean& propertyNotFound) at DotNetNuke.Services.Tokens.BaseCustomTokenReplace.replacedTokenValue(String strObjectName, String strPropertyName, String strFormat) at DotNetNuke.Services.Tokens.BaseTokenReplace.ReplaceTokens(String strSourceText) at WESNet.DNN.Modules.ByInvitation.Tokenizer.ReplaceInvitationTokens(String sourceText) at WESNet.DNN.Modules.ByInvitation.NotificationsHelper.SendNotifications(InvitationInfo invitation, Notifications reasons, String message) at WESNet.DNN.Modules.ByInvitation.InvitationScheduler.DoWork()

wesnetdesigns commented 9 years ago

The null reference error is originating in DNN's BasicFriendlyUrlProvider.GetFriendlyAlias method which accesses the HttpContext object. However, within a scheduled job, the HttpContext object is null. I had thought that this was fixed in DNN 7.3.x. Here's the issue in DNN support tracker: https://dnntracker.atlassian.net/browse/DNN-3140 . Not sure why I can't reproduce it in development . . . Please answer the following:

  1. DNN version under which site is running.
  2. Is this a multi-portal installation?
  3. Are multiple site aliases defined (see Admin->Site Settings when logged in as host user)?
  4. In the site's web.config file look for the element that begins with "<add name="DNNFriendlyUrl" . . . ". What is the value for the urlFormat attribute? Is it "advanced"?

I will have to create a work around . . . most likely generating the Join and Decline email links at the time the invitation is created, not at the time it is emailed.

wesnetdesigns commented 9 years ago

Just spent some more time pouring through the DNN core code. It appears that the AdvancedFriendlyUrl.GetFriendlyAlias method avoids the null reference error but the BasicFriendlyUrlProvider does not. I'm especially interest in question 4 I posed above and suspect that your urlFormat attribute is set to "humanFriendly", particularly if the site was upgraded from DNN 6.x.

teambound commented 9 years ago

You are correct I cannot use the advanced URL because I have a couple of modules that don't work with it correctly

Sent from my iPhone

On May 8, 2015, at 10:49 PM, Bill Severance notifications@github.com wrote:

Just spent some more time pouring through the DNN core code. It appears that the AdvancedFriendlyUrl.GetFriendlyAlias method avoids the null reference error but the BasicFriendlyUrlProvider does not. I'm especially interest in question 4 I posed above and suspect that your urlFormat attribute is set to "humanFriendly", particularly if the site was upgraded from DNN 6.x.

— Reply to this email directly or view it on GitHub.

wesnetdesigns commented 9 years ago

I have added a 2nd release of replacement assembly file WESNet.DNN.Modules.ByInvitation.dll which should fix the null reference exceptions occurring during each run of the By Invitation scheduled job on sites which have the friendly url provider's urlFormat attribute set to "advanced" in web.config. Please replace the DLL file of the same name in the site's /bin folder with the one found in the new release (01.00.01.04) and let me know if this fixes the issue. Thanks!