I updated my Windows 2019 Server last night and looks like there was a .net framework update as well. After applying the update, the website section in SolidCP stopped loading and I got this error:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: There is an error in the XML document. ---> System.InvalidOperationException: Type 'SolidCP.Providers.ResultObjects.HeliconApeStatus, SolidCP.Providers.Base, Version=1.4.6.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081' is not allowed here. See https://go.microsoft.com/fwlink/?linkid=2132227 for more information.
at System.Data.TypeLimiter.EnsureTypeIsAllowed(Type type, TypeLimiter capturedLimiter)
at System.Data.DataColumn.UpdateColumnType(Type type, StorageType typeCode)
at System.Data.DataColumn.set_DataType(Type value)
at System.Data.XSDSchema.SetProperties(Object instance, XmlAttribute[] attrs)
at System.Data.XSDSchema.HandleElementColumn(XmlSchemaElement elem, DataTable table, Boolean isBase)
at System.Data.XSDSchema.HandleParticle(XmlSchemaParticle pt, DataTable table, ArrayList tableChildren, Boolean isBase)
at System.Data.XSDSchema.HandleComplexType(XmlSchemaComplexType ct, DataTable table, ArrayList tableChildren, Boolean isNillable)
at System.Data.XSDSchema.InstantiateTable(XmlSchemaElement node, XmlSchemaComplexType typeNode, Boolean isRef)
at System.Data.XSDSchema.HandleTable(XmlSchemaElement node)
at System.Data.XSDSchema.HandleDataSet(XmlSchemaElement node, Boolean isNewDataSet)
at System.Data.XSDSchema.LoadSchema(XmlSchemaSet schemaSet, DataSet ds)
at System.Data.DataSet.ReadXml(XmlReader reader, XmlReadMode mode, Boolean denyResolving)
at System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader reader)
at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderesPackages.Read112_Item()
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at SolidCP.EnterpriseServer.esPackages.GetRawPackageItemsPaged(Int32 packageId, String groupName, String typeName, Int32 serverId, Boolean recursive, String filterColumn, String filterValue, String sortColumn, Int32 startRow, Int32 maximumRows)
at SolidCP.Portal.ServiceItemsHelper.GetServiceItemsPaged(Int32 packageId, String groupName, String typeName, Int32 serverId, Boolean recursive, String filterColumn, String filterValue, Int32 maximumRows, Int32 startRowIndex, String sortColumn)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
I then went to this website and tried the various methods but had no success: https://go.microsoft.com/fwlink/?linkid=2132227
I just went ahead and added this line to the Portal's web.config file and it worked:
<add key="AppContext.SetSwitch:Switch.System.Data.AllowArbitraryDataSetTypeInstantiation" value="true" />
The article says this method is not secure, so it is a bandaid solution for now.
I have received the same issue, but I have not installed any updates on my system. Please assist us.
Ali, my fix is just a temporary solution until the good folks at SolidCP find a more permanent solution. I am assuming you are on 1.4.6, open the web.config file in the Portal, find this section:
<appSettings>
(a bunch of keys in between)
</appSettings>
Add this line:
<add key=”AppContext.SetSwitch:Switch.System.Data.AllowArbitraryDataSetTypeInstantiation” value=”true” />
Hi Chris, hi Ali,
the more secure workaround is to add the lines between "snippet to add" and "end of snippet" marked as bold to the web.config of the SolidCP Portal:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="bundleTransformer">
<section name="core" type="BundleTransformer.Core.Configuration.CoreSettings, BundleTransformer.Core" />
<section name="less" type="BundleTransformer.Less.Configuration.LessSettings, BundleTransformer.Less" />
</sectionGroup>
<!-- snippet to add -->
<sectionGroup name="system.data.dataset.serialization" type="System.Data.SerializationSettingsSectionGroup, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="allowedTypes" type="System.Data.AllowedTypesSectionHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
<!-- end of snippet -->
</configSections>
<!-- snippet to add -->
<system.data.dataset.serialization>
<allowedTypes>
<add type="SolidCP.Providers.ResultObjects.HeliconApeStatus, SolidCP.Providers.Base, Version=1.4.6.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081" />
</allowedTypes>
</system.data.dataset.serialization>
<!-- end of snippet -->
Please replace "Version=1.4.6.0" with the one, which you are using (you can see it in the error).
So in this case you are only allowing this one type to be used in the DataSet instead of all available types, which could be less secure.
I hope we can find a programmatically fix for it until the next release, but for now this workaround is working without the need to remove the latest Windows Updates, which caused this issue.
Best regards
Bogdan
Hello,
I just wanted to add that we have pushed this to our manual page here:
https://solidcp.com/kb/configuration/websites-listing-xml-error/
In addition we announced the next release of SolidCP which will include this fix (via the powershell update script) which will be released in 3 weeks: 10-08-2020 (dd-mm-yyyy).
Count down has been added to the homepage including a warning about this issue with a reference to the quick fix manual.
Regards,
Marco Tiggelaar