Good afternoon,
I created a Service application with a service module (TimezoneConverter) using this component as a dependency.
When I use one of the actions from that service module in a test application and try to access the screen, it's throwing: "Internal error". In Service Center, the error is: "A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)".
When I debug the service module, it stops in the GetIANATimezone action. The input I'm using is "Europe/Amsterdam". I also tried "Europe/Lisbon".
I'm using the action as a function in a Table Records.
Stack:A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) at ssTimeZoneConverter.RssExtensionTimeZone_Lib.MssGetIANATimeZone(HeContext heContext, String inParamIANATimezone, IRecord& outParamTimeZone) at ssTimeZoneConverter.Actions.ActionGetIANAAmsterdamTimeZoneId(HeContext heContext, String& outParamTimeZoneId) at ssTimeZoneConverter.Actions.ActionConvertDateTime_UTCToAmsterdam(HeContext heContext, DateTime inParamDateTimeUTC, DateTime& outParamDateTime) at ssTestingTimezone.RsseSpaceTimeZoneConverter.MssConvertDateTime_UTCToAmsterdam(HeContext heContext, DateTime inParamDateTimeUTC, DateTime& outParamDateTime) at ssTestingTimezone.Functions.rssespacetimezoneconverter_ActionConvertDateTime_UTCToAmsterdam(HeContext heContext, DateTime inParamDateTimeUTC) at ssTestingTimezone.Flows.FlowMainFlow.ScrnTests.expression42() at ASP.tests_aspx.__DataBind__control66(Object sender, EventArgs e) at System.Web.UI.Control.OnDataBinding(EventArgs e) at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.PlaceHolder.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.PlaceHolder.DataBind() at OutSystems.HubEdition.WebWidgets.HyperLink.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.HyperLink.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.OSDataGridTableCell.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.OSDataGridTableCell.DataBind() at OutSystems.HubEdition.WebWidgets.OSDataGridItem.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource) at System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource) at OutSystems.HubEdition.WebWidgets.OSDataGrid.CreateControlHierarchy(Boolean useDataSource) at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) at OutSystems.HubEdition.WebWidgets.OSDataGrid.OnDataBinding(EventArgs e) at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.Container.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Container.DataBind() at OutSystems.HubEdition.WebWidgets.OSUserControl.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.OSUserControl.DataBind() at OutSystems.HubEdition.WebWidgets.OSUserControl.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.OSUserControl.DataBind() at OutSystems.HubEdition.WebWidgets.Form.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.Body.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.OSPage.DataBindChildren() at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) at OutSystems.HubEdition.WebWidgets.OSPage.DataBind() at ssTestingTimezone.Flows.FlowMainFlow.ScrnTests.DataBind() at ssTestingTimezone.Flows.FlowMainFlow.ScrnTests.Page_Load(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Hi Vanessa,
What if you don't use a Service Module? Would the outcome be the same?
What Stuart said previously about the signed assemblies makes sense so if the actions work outside a Service Module that means that the issue would most likely be with the Module Type.
Regards,
Filipe
Hi Vanessa!Mind if I ask why the need of encapsulating the timezone extension actions within a Service Action?Also, could you share those test modules you are talking about to see if I can replicate the behavior on my side and help you out?
Thanks.
Hi Filipe,
I'm using The GetIANATimezoneId to return the TimezoneId and I need to save and show the time in Amesterdam timezone in several applications in the environment. Me and my colleague thought that encapsulate in a service application was the best way to do it.
For the Service module, I have this:
All the other actions to convert are basically like the one below but output is in time or date.
Thank you
Thanks for sharing Vanessa.
I've made a couple of tests myself and never got into trouble. As you can see on the screenshot below the screen is converting and displaying the dates as expected.
Are you using the latest version of the component?
If so, did this start to happen after any particular event? A platform upgrade or something else? Does it also happen if you try in another environment?
I would check also the usual stuff, like outdated references, and would consider rebuilding the Timezone extension and running a solution afterward to guarantee consistency.
Looking forward to hearing back from you.
When I changed the value of the Site Property 'EnableTimeConversion' to true and start using the 'TimeZone' extension functions, it started retrieving the error. I tried on my personal environment and it worked well.
Best regards,
Vanessa Silva
Hi Vanessa.
Well, if it worked well on your Personal Environment and not on your existing environment it's probably because there's some problem with your existing codebase. Did you manage to check the above points I've mentioned previously?
This happened once I started working in the environment.
I updated the component, and the error continued.
Thank you and best regards,
Curious if you managed to overcome this situation and if so, any chance you can share what the issue was?
Thanks!
Hi Filipe,Still trying to solve it.
This seems very strange. I recommend lodging a support issue with OutSystems.
The error "A strongly-named assembly is required." appears when a strongly-named .NET assembly attempts to call a .NET assembly that is not strongly-named. A strong-name for an assembly is applied by signing the assembly.
This indicates that the service module is somehow being signed, but the extension is not signed. I did not think OutSystems signed assemblies. This is why I recommend OutSystems support.
Kind regards,
Stuart
Hi Stuart,
I think that is strange too, because I've used this component in past projects, and it worked well.
I started by opening a ticket in OutSystems Support.
This is not a component supported by them, so they said to talk to the one who made the component.
They also asked me to send them my logs, which I did. I am waiting for a response from them.
Vanessa
I followed your suggestion (used a Blank Module) and it worked!
Thank you both for the help!