Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Rick van Lieshout 6 posts 86 karma points
    May 10, 2017 @ 15:04
    Rick van Lieshout
    0

    Troubles upgrading from 2.1.5 to 2.1.7 (now with license)

    After installing the newsletter studio 2.1.7 packages, things got messy.

    Our log contains lines like these:

     ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
    ClientConnectionId:23e715d8-a9ed-41c0-802d-5fe40f44bf36
    Error Number:5074,State:1,Class:16
     2017-05-05 08:01:08,167 [P2412/D7/T304] INFO  umbraco.BusinessLogic.Log - Redirected log call (please use Umbraco.Core.Logging.LogHelper instead of umbraco.BusinessLogic.Log) | Type: Error | User: 0 | NodeId: 0 | Comment: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQueryumbraco.DataLayer.SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQuery ---> System.Data.SqlClient.SqlException: The index 'NCI_TrackingItems_Email1' is dependent on column 'Email'.
    ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
       --- End of inner exception stack trace ---
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
       at NewsletterStudio.Install.Actions.Upgrades.Upgrade_To_1_3_4.Do()
     2017-05-05 08:01:08,183 [P2412/D7/T85] ERROR umbraco.DataLayer.SqlHelper`1[[System.Data.SqlClient.SqlParameter, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] - Error executing query ALTER TABLE ns_TrackingItems ALTER COLUMN Email nvarchar(100) NOT NULL
    System.Data.SqlClient.SqlException (0x80131904): The index 'NCI_TrackingItems_Email1' is dependent on column 'Email'.
    ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
    ClientConnectionId:23e715d8-a9ed-41c0-802d-5fe40f44bf36
    Error Number:5074,State:1,Class:16
     2017-05-05 08:01:08,183 [P2412/D7/T25] INFO  umbraco.BusinessLogic.Log - Redirected log call (please use Umbraco.Core.Logging.LogHelper instead of umbraco.BusinessLogic.Log) | Type: Error | User: 0 | NodeId: 0 | Comment: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQuery   at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
       at NewsletterStudio.Install.Actions.Upgrades.Upgrade_To_1_3_5.AddDatabaseIndexesForEmail()
       at NewsletterStudio.Install.NewsletterStudioInstaller.Execute(String packageName, XmlNode xmlData)System.Data.SqlClient.SqlException (0x80131904): The index 'NCI_TrackingItems_Email1' is dependent on column 'Email'.
    ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
    ClientConnectionId:23e715d8-a9ed-41c0-802d-5fe40f44bf36
    Error Number:5074,State:1,Class:16umbraco.DataLayer.SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQuery ---> System.Data.SqlClient.SqlException: The index 'NCI_TrackingItems_Email1' is dependent on column 'Email'.
    ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
       --- End of inner exception stack trace ---
       at umbraco.DataLayer.SqlHelper`1.ExecuteNonQuery(String commandText, IParameter[] parameters)
       at NewsletterStudio.Install.Actions.Upgrades.Upgrade_To_1_3_5.AddDatabaseIndexesForEmail()
       at NewsletterStudio.Install.NewsletterStudioInstaller.Execute(String packageName, XmlNode xmlData)
    

    Reinstalling does not resolve anything. Our newsletter studio install is broken. Skins do not work, website hostname does not get prefixed to media urls... all in all: it's rendered useless...

    What can we do to fix the package?

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 10, 2017 @ 15:12
    Markus Johansson
    0

    Hi!

    Looks like some permissions issues?

    How does your /config/newsletterStudio.config-file look? Do you have all the renderTasks configured?

    // m

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 10, 2017 @ 15:14
    Markus Johansson
    0

    Did you get the errors during the install/upgrade? Not when you load the backoffice right?

    / m

  • Rick van Lieshout 6 posts 86 karma points
    May 10, 2017 @ 15:21
    Rick van Lieshout
    0

    This is the newsletterStudio.config file:

    <?xml version="1.0" encoding="utf-8"?>
    <newsletterStudio senderDefaultName="" senderDefaultEmail=""
       senderDefaultSettingsForced="false" unsubscribeConfirmUrl=""
       tinyMCEDataTypeId="0" sendFailuresBeforeUnsubscribingSubscriber="4"
       settingsOnlyForAdmins="false" allowUseOfSendOutPropertyEditorWithoutApplicationAccess="true"
       forceUnsubscribeFooter="false" activateCustomDataCollection="true"
       activateCssInliner="true" enableGoogleAnalyticsTracking="false"
       googleAnalyticsMedium="email" allowedTemplatesForRenderUrl=""
       googleAnalyticsSource="NewsletterStudio" googleAnalyticsName=""
       googleAnalyticsContent="" lastInstalledVersion="">
       <outgoingEmail sendConnectionTestEmailsTo="[email protected]"
           throttlingEnabled="false" throttlingMessagesPerBatch="100"
           throttlingSecondsBetweenBatches="0" messagesBeforeJumpingToNextServer="250">
           <smtpServers>
               <clear />
           </smtpServers>
       </outgoingEmail>
       <bounceManagement enabled="false" email="" host="" port="0" username=""
           password="" />
       <emailRenderingTasks>
           <clear />
       </emailRenderingTasks>
       <subscriptionProviders>
           <clear />
       </subscriptionProviders>
    </newsletterStudio>
    

    You mention renderTasks, however I cannot find any documentation about what those are and where to configure those.

    The installation does not complain about anything. The log indicate something goes wrong (db index troubles).

    The backoffice acts weird: it does not show any skins and the code button of the RTE is mostly gone (however, not always)...

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 11, 2017 @ 07:31
    Markus Johansson
    0

    Hi!

    Did everything work before your upgrade?

    Most of the cases this is due to installation issues almost all the time permissions to the file system.

    If you have a look at this file: https://gist.github.com/enkelmedia/17f569bb04886a8b4ab1b2bddcb09bff

    Copy over the render tasks and the subscription providers. Your config should look something like:

    <?xml version="1.0" encoding="utf-8"?>
    <newsletterStudio senderDefaultName="" senderDefaultEmail=""
       senderDefaultSettingsForced="false" unsubscribeConfirmUrl=""
       tinyMCEDataTypeId="0" sendFailuresBeforeUnsubscribingSubscriber="4"
       settingsOnlyForAdmins="false" allowUseOfSendOutPropertyEditorWithoutApplicationAccess="true"
       forceUnsubscribeFooter="false" activateCustomDataCollection="true"
       activateCssInliner="true" enableGoogleAnalyticsTracking="false"
       googleAnalyticsMedium="email" allowedTemplatesForRenderUrl=""
       googleAnalyticsSource="NewsletterStudio" googleAnalyticsName=""
       googleAnalyticsContent="" lastInstalledVersion="">
       <outgoingEmail sendConnectionTestEmailsTo="[email protected]"
           throttlingEnabled="false" throttlingMessagesPerBatch="100"
           throttlingSecondsBetweenBatches="0" messagesBeforeJumpingToNextServer="250">
           <smtpServers>
               <clear />
           </smtpServers>
       </outgoingEmail>
       <bounceManagement enabled="false" email="" host="" port="0" username=""
           password="" />
       <emailRenderingTasks>
           <clear />
      <task name="AddTrackingPixelRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddTrackingPixelRenderTask, NewsletterStudio" />
      <task name="FitIntoTemplateRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.FitIntoTemplateRenderTask, NewsletterStudio" />
      <task name="RenderUrlRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.RenderUrlRenderTask, NewsletterStudio" />
      <task name="ReplaceUnsubscribeRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceUnsubscribeRenderTask, NewsletterStudio" />
      <task name="ReadOnlineRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReadOnlineRenderTask, NewsletterStudio" />
      <task name="ReplaceLocalLinksRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceLocalLinksRenderTask, NewsletterStudio" />
      <task name="AddFullDomainToRelativeSrcsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddFullDomainToRelativeSrcsRenderTask, NewsletterStudio" />
      <task name="ReplaceRelativeLinksRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceRelativeLinksRenderTask, NewsletterStudio" />
      <task name="GoogleAnalyticsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.GoogleAnalyticsRenderTask, NewsletterStudio" />
      <task name="AddClickTagsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddClickTagsRenderTask, NewsletterStudio" />
      <task name="ReplaceUniqMergeFieldsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceUniqMergeFieldsRenderTask, NewsletterStudio" />
      <task name="InsertCustomDataRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.InsertCustomDataRenderTask, NewsletterStudio" />
      <task name="PreMailer" type="NewsletterStudio.Services.RenderTasks.Tasks.CssPremailerRenderTask, NewsletterStudio" />
       </emailRenderingTasks>
    

    Also not that the tinyMCEDataTypeId is "0" which explains why you don't see the toolbar-buttons. When the id is 0 or the id don't represent a Rich Text Editor we will render a default rich text editor. Please check the int-id of the data type "Richtext Editor Newsletter Studio" and add this id to the config. Here is how you find out the id.

    enter image description here

    Please just let me know how this works for you!

    Cheers!

  • Rick van Lieshout 6 posts 86 karma points
    May 11, 2017 @ 07:58
    Rick van Lieshout
    0

    Ok, my newsletterStudio.config file now looks like this:

    <?xml version="1.0" encoding="utf-8"?>
    <newsletterStudio senderDefaultName="" senderDefaultEmail=""
       senderDefaultSettingsForced="false" unsubscribeConfirmUrl=""
       tinyMCEDataTypeId="2908" sendFailuresBeforeUnsubscribingSubscriber="4"
       settingsOnlyForAdmins="false" allowUseOfSendOutPropertyEditorWithoutApplicationAccess="true"
       forceUnsubscribeFooter="false" activateCustomDataCollection="true"
       activateCssInliner="true" enableGoogleAnalyticsTracking="false"
       googleAnalyticsMedium="email" allowedTemplatesForRenderUrl="Content"
       googleAnalyticsSource="NewsletterStudio" googleAnalyticsName=""
       googleAnalyticsContent="" lastInstalledVersion="2.1.7">
       <outgoingEmail sendConnectionTestEmailsTo="[email protected]"
          throttlingEnabled="false" throttlingMessagesPerBatch="100"
          throttlingSecondsBetweenBatches="0" messagesBeforeJumpingToNextServer="250">
          <smtpServers>
             <clear />
          </smtpServers>
       </outgoingEmail>
       <bounceManagement enabled="false" email="" host="" port="0" username=""
          password="" />
       <emailRenderingTasks>
          <clear />
          <task name="AddTrackingPixelRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddTrackingPixelRenderTask, NewsletterStudio" />
          <task name="FitIntoTemplateRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.FitIntoTemplateRenderTask, NewsletterStudio" />
          <task name="RenderUrlRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.RenderUrlRenderTask, NewsletterStudio" />
          <task name="ReplaceUnsubscribeRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceUnsubscribeRenderTask, NewsletterStudio" />
          <task name="ReadOnlineRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReadOnlineRenderTask, NewsletterStudio" />
          <task name="ReplaceLocalLinksRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceLocalLinksRenderTask, NewsletterStudio" />
          <task name="AddFullDomainToRelativeSrcsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddFullDomainToRelativeSrcsRenderTask, NewsletterStudio" />
          <task name="ReplaceRelativeLinksRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceRelativeLinksRenderTask, NewsletterStudio" />
          <task name="GoogleAnalyticsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.GoogleAnalyticsRenderTask, NewsletterStudio" />
          <task name="AddClickTagsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.AddClickTagsRenderTask, NewsletterStudio" />
          <task name="ReplaceUniqMergeFieldsRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.ReplaceUniqMergeFieldsRenderTask, NewsletterStudio" />
          <task name="InsertCustomDataRenderTask" type="NewsletterStudio.Services.RenderTasks.Tasks.InsertCustomDataRenderTask, NewsletterStudio" />
          <task name="PreMailer" type="NewsletterStudio.Services.RenderTasks.Tasks.CssPremailerRenderTask, NewsletterStudio" />
       </emailRenderingTasks>
       <subscriptionProviders>
          <clear />
          <provider name="NewsletterStudioSubscriptionProvider" type="NewsletterStudio.Bll.Providers.NewsletterStudioSubscriptionProvider, NewsletterStudio" />
          <provider name="UmbracoNewSubscriptionProvider" type="NewsletterStudio.Bll.Providers.UmbracoNewSubscriptionProvider, NewsletterStudio" />
       </subscriptionProviders>
    </newsletterStudio>
    

    It looks like the RTE is more stable now, however it still does not show any 'Skins' when I create a new newsletter. Also the website name/hostname does not get prefixed to media inserted.

    And yes, we got things working with the 2.1.5 version. As we bought a license, we figured it would be a good idea to also upgrade to the latest version... not sure what went wrong.

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 11, 2017 @ 08:11
    Markus Johansson
    0

    Hi!

    Nice to hear! The "unstable" behavior was due to the fact that the wrong RTE was rendered - so the toolbox button was not activated on that RTE.

    How many skins do you have configured in the settings section? If you only have one there is no choice presented - to avoid bloating the UI.

    The hostnames will only be added to the links when you run the content trough the render-task pipeline. We cant do this in the editor as the links in the editors is only "fake" the accual thinh that gets stored in the db is the ID of the node.

    You can see the end result of the render task pipeline when you preview an email or when you perform an actual send out - best is to either try with a test mail - or even better perform a real send out to a list of test e-mails (ie. your own and some collegues).

    Since the preview and "test email" is not real campaigns there will be differences in how the rendering is performs (we cant do tracking and unsubscribe on test email) so to be 100% sure about how something looks perform a real send out to a test-list.

    Just get back if you have any further questions!

    Cheers!

  • Rick van Lieshout 6 posts 86 karma points
    May 11, 2017 @ 09:18
    Rick van Lieshout
    0

    We have multiple skins, so the 'selector' does show. However if I select any Skin it does not 'setup' the RTE.

    Just tried a test e-mail. It does show the image (media) so I guess the hostname gets prefixed.

    I guess loading the skin into the RTE is the remaining issue.

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 11, 2017 @ 10:51
    Markus Johansson
    0

    Hi!

    The skin will not be loaded in the RTE, in that case you would have to use the template-feature.

    The skin only "wraps" the content when the newsletter is processed.

    // m

  • Rick van Lieshout 6 posts 86 karma points
    May 11, 2017 @ 11:33
    Rick van Lieshout
    0

    Recap:

    1. RTE Troubles

      • Make Sure tinyMCEDataTypeId is set to the node id of the RTE
    2. Incorrect e-mail (hostname not prefixed to media items)

    3. SQL 'errors' like 'ALTER TABLE ALTER COLUMN Email failed because one or more objects access this column' are no problem (Log file).

    4. A skin will not show in the RTE. Only the [content] placeholder will be replaced with the content entered in the RTE.

    Thanks for the support!

  • Markus Johansson 1914 posts 5761 karma points MVP c-trib
    May 11, 2017 @ 12:05
    Markus Johansson
    100

    Great recap!

    Yes, the errors from 2 is upgrade steps from version 1.3.4 that triggers - should not be like this so I've added this as a bug it should not have any impact on the upgrade.

    / m

Please Sign in or register to post replies

Write your reply to:

Draft