apm-agent-dotnet
apm-agent-dotnet copied to clipboard
[BUG] Elastic.Apm.AspNetFullFramework crashes on some SOAP requests to ASP Net Web Service
APM Agent version
Elastic.Apm.AspNetFullFramework 1.16.1
Environment
C# ASP NET Web Service
.NET Framework 4.8
Describe the bug
Some SOAP requests (not all, just some) to ASP Net Web Service crash if I have agent enabled in web.config. All I did was integrate agent into our old Web Service. Could be something wrong with SOAP request (syntax, etc.)? But other clients (Java, etc.) have no problems calling this Web Service for several years.
Exception message:
System.Web.Services.Protocols.SoapException: There was an exception running the extensions specified in the config file. ---> System.InvalidOperationException: Either BinaryRead, Form, Files, or InputStream was accessed before the internal storage was filled by the caller of HttpRequest.GetBufferedInputStream. at System.Web.HttpRequest.GetEntireRawContent() at System.Web.HttpRequest.get_InputStream() at System.Web.Services.Protocols.SoapServerProtocol.Initialize() --- End of inner exception stack trace --- at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
Thanks for reporting @sabiland
Did you change any configuration of the agent? Based on the callstack it seems the exception happens when the content of the Http request is read - by default the agent doesn't do that, unless you turn on request body capturing. Docs on it here
So, it's be nice to know your agent configs to further troubleshoot.
Also - would it be possible to maybe create a small reproducer?
@sabiland could you maybe share a reproducer for this issue? I'm currently working on request body capturing for .NET Framework (#379) and this is most likely an interesting test case for that feature.
So I think, if I have APM enabled in web.config (via system.webServer
tags), some incoming XML SOAP requests crash. I guess APM intercepts every request and tries to do something. But with some (not all) requests it crashes.
If it is any help, here is wsdl-xml (I've hidden some infos). I am sure it crashes on method TSMPReconfigureSTBDevices
with some specific parameters combination (maybe something with nulls) - also not always.
EDIT: Damn, xml is badly code-formatted. Any way to fix it?
<wsdl:definitions
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://tempuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://tempuri.org/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="TTT">
<s:complexType/>
</s:element>
<s:element name="TTTResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TTTResult"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AAATestGenericMethod">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="adsl" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="accountId" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AAATestGenericMethodResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="AAATestGenericMethodResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="EnableVerimatrixLicenseForMAC">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_mac" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="EnableVerimatrixLicenseForMACResponse">
<s:complexType/>
</s:element>
<s:element name="DisableVerimatrixLicenseForMAC">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_mac" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DisableVerimatrixLicenseForMACResponse">
<s:complexType/>
</s:element>
<s:element name="TSMPChangeFriendlyName">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_mac" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="_friendlyName" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="TSMPResponse">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Success" type="s:boolean"/>
<s:element minOccurs="0" maxOccurs="1" name="ErrMsg" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="Duration" type="s:double"/>
<s:element minOccurs="1" maxOccurs="1" name="TSMPActionID" type="s:int"/>
</s:sequence>
</s:complexType>
<s:element name="TSMPChangeFriendlyNameResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPChangeFriendlyNameResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPFastChannelListUpdate">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_STBDevices" type="tns:ArrayOfSimpleSTB"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfSimpleSTB">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="SimpleSTB" nillable="true" type="tns:SimpleSTB"/>
</s:sequence>
</s:complexType>
<s:complexType name="SimpleSTB">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MAC" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="TVPackages" type="tns:ArrayOfString"/>
<s:element minOccurs="1" maxOccurs="1" name="STBType" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="FriendlyName" type="s:string"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string"/>
</s:sequence>
</s:complexType>
<s:element name="TSMPFastChannelListUpdateResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPFastChannelListUpdateResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPReconfigureSTBDevices">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_ADSLUsername" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="_AccountID" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="_STBDevices" type="tns:ArrayOfTSMPStbDevice"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfTSMPStbDevice">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="TSMPStbDevice" nillable="true" type="tns:TSMPStbDevice"/>
</s:sequence>
</s:complexType>
<s:complexType name="TSMPStbDevice">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MAC" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="STBType" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Encoding" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="FriendlyName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="TVPackages" type="tns:ArrayOfString"/>
<s:element minOccurs="1" maxOccurs="1" name="SetVerimatrix" type="s:boolean"/>
<s:element minOccurs="1" maxOccurs="1" name="IsSTBBlocked" type="s:boolean"/>
<s:element minOccurs="1" maxOccurs="1" name="IsNewZeroTouchActivation" type="s:boolean"/>
<s:element minOccurs="0" maxOccurs="1" name="Level2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CatchupHoursInfo" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PackagesInfo" type="s:string"/>
</s:sequence>
</s:complexType>
<s:element name="TSMPReconfigureSTBDevicesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPReconfigureSTBDevicesResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPBlockDeblockSTBDevices">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_STBDevices" type="tns:ArrayOfString"/>
<s:element minOccurs="1" maxOccurs="1" name="_block" type="s:boolean"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPBlockDeblockSTBDevicesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPBlockDeblockSTBDevicesResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPDeleteSTBDevicesOnlyFromMACS">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_STBDevices" type="tns:ArrayOfString"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPDeleteSTBDevicesOnlyFromMACSResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPDeleteSTBDevicesOnlyFromMACSResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPDeleteSTBDevices">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_ADSLUsername" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="_AccountID" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="_STBDevices" type="tns:ArrayOfString"/>
<s:element minOccurs="1" maxOccurs="1" name="_deleteChannelList" type="s:boolean"/>
<s:element minOccurs="1" maxOccurs="1" name="_finalDelete" type="s:boolean"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPDeleteSTBDevicesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPDeleteSTBDevicesResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPGetCurrentSituation">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="_AccountID" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="TSMPCurrentSituation">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Res" type="tns:TSMPResponse"/>
<s:element minOccurs="0" maxOccurs="1" name="STBDevices" type="tns:ArrayOfTSMPStbDevice"/>
<s:element minOccurs="0" maxOccurs="1" name="ADSLUsername" type="s:string"/>
</s:sequence>
</s:complexType>
<s:element name="TSMPGetCurrentSituationResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPGetCurrentSituationResult" type="tns:TSMPCurrentSituation"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPSecurityPackagesNewLicense">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="_accountID" type="s:int"/>
<s:element minOccurs="1" maxOccurs="1" name="_securityPackageType" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="TSMPResponseSPData">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Success" type="s:boolean"/>
<s:element minOccurs="0" maxOccurs="1" name="ErrMsg" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="Duration" type="s:double"/>
<s:element minOccurs="1" maxOccurs="1" name="TSMPActionID" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="Data">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
<s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax"/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
<s:element name="TSMPSecurityPackagesNewLicenseResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPSecurityPackagesNewLicenseResult" type="tns:TSMPResponseSPData"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPSecurityPackagesActive">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="_accountID" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPSecurityPackagesActiveResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPSecurityPackagesActiveResult" type="tns:TSMPResponseSPData"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPSecurityPackagesFreeLicense">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="_licenseKey" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="TSMPSecurityPackagesFreeLicenseResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TSMPSecurityPackagesFreeLicenseResult" type="tns:TSMPResponse"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="TTTSoapIn">
<wsdl:part name="parameters" element="tns:TTT"/>
</wsdl:message>
<wsdl:message name="TTTSoapOut">
<wsdl:part name="parameters" element="tns:TTTResponse"/>
</wsdl:message>
<wsdl:message name="AAATestGenericMethodSoapIn">
<wsdl:part name="parameters" element="tns:AAATestGenericMethod"/>
</wsdl:message>
<wsdl:message name="AAATestGenericMethodSoapOut">
<wsdl:part name="parameters" element="tns:AAATestGenericMethodResponse"/>
</wsdl:message>
<wsdl:message name="EnableVerimatrixLicenseForMACSoapIn">
<wsdl:part name="parameters" element="tns:EnableVerimatrixLicenseForMAC"/>
</wsdl:message>
<wsdl:message name="EnableVerimatrixLicenseForMACSoapOut">
<wsdl:part name="parameters" element="tns:EnableVerimatrixLicenseForMACResponse"/>
</wsdl:message>
<wsdl:message name="DisableVerimatrixLicenseForMACSoapIn">
<wsdl:part name="parameters" element="tns:DisableVerimatrixLicenseForMAC"/>
</wsdl:message>
<wsdl:message name="DisableVerimatrixLicenseForMACSoapOut">
<wsdl:part name="parameters" element="tns:DisableVerimatrixLicenseForMACResponse"/>
</wsdl:message>
<wsdl:message name="TSMPChangeFriendlyNameSoapIn">
<wsdl:part name="parameters" element="tns:TSMPChangeFriendlyName"/>
</wsdl:message>
<wsdl:message name="TSMPChangeFriendlyNameSoapOut">
<wsdl:part name="parameters" element="tns:TSMPChangeFriendlyNameResponse"/>
</wsdl:message>
<wsdl:message name="TSMPFastChannelListUpdateSoapIn">
<wsdl:part name="parameters" element="tns:TSMPFastChannelListUpdate"/>
</wsdl:message>
<wsdl:message name="TSMPFastChannelListUpdateSoapOut">
<wsdl:part name="parameters" element="tns:TSMPFastChannelListUpdateResponse"/>
</wsdl:message>
<wsdl:message name="TSMPReconfigureSTBDevicesSoapIn">
<wsdl:part name="parameters" element="tns:TSMPReconfigureSTBDevices"/>
</wsdl:message>
<wsdl:message name="TSMPReconfigureSTBDevicesSoapOut">
<wsdl:part name="parameters" element="tns:TSMPReconfigureSTBDevicesResponse"/>
</wsdl:message>
<wsdl:message name="TSMPBlockDeblockSTBDevicesSoapIn">
<wsdl:part name="parameters" element="tns:TSMPBlockDeblockSTBDevices"/>
</wsdl:message>
<wsdl:message name="TSMPBlockDeblockSTBDevicesSoapOut">
<wsdl:part name="parameters" element="tns:TSMPBlockDeblockSTBDevicesResponse"/>
</wsdl:message>
<wsdl:message name="TSMPDeleteSTBDevicesOnlyFromMACSSoapIn">
<wsdl:part name="parameters" element="tns:TSMPDeleteSTBDevicesOnlyFromMACS"/>
</wsdl:message>
<wsdl:message name="TSMPDeleteSTBDevicesOnlyFromMACSSoapOut">
<wsdl:part name="parameters" element="tns:TSMPDeleteSTBDevicesOnlyFromMACSResponse"/>
</wsdl:message>
<wsdl:message name="TSMPDeleteSTBDevicesSoapIn">
<wsdl:part name="parameters" element="tns:TSMPDeleteSTBDevices"/>
</wsdl:message>
<wsdl:message name="TSMPDeleteSTBDevicesSoapOut">
<wsdl:part name="parameters" element="tns:TSMPDeleteSTBDevicesResponse"/>
</wsdl:message>
<wsdl:message name="TSMPGetCurrentSituationSoapIn">
<wsdl:part name="parameters" element="tns:TSMPGetCurrentSituation"/>
</wsdl:message>
<wsdl:message name="TSMPGetCurrentSituationSoapOut">
<wsdl:part name="parameters" element="tns:TSMPGetCurrentSituationResponse"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesNewLicenseSoapIn">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesNewLicense"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesNewLicenseSoapOut">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesNewLicenseResponse"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesActiveSoapIn">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesActive"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesActiveSoapOut">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesActiveResponse"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesFreeLicenseSoapIn">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesFreeLicense"/>
</wsdl:message>
<wsdl:message name="TSMPSecurityPackagesFreeLicenseSoapOut">
<wsdl:part name="parameters" element="tns:TSMPSecurityPackagesFreeLicenseResponse"/>
</wsdl:message>
<wsdl:portType name="TSMediaProxySoap">
<wsdl:operation name="TTT">
<wsdl:input message="tns:TTTSoapIn"/>
<wsdl:output message="tns:TTTSoapOut"/>
</wsdl:operation>
<wsdl:operation name="AAATestGenericMethod">
<wsdl:input message="tns:AAATestGenericMethodSoapIn"/>
<wsdl:output message="tns:AAATestGenericMethodSoapOut"/>
</wsdl:operation>
<wsdl:operation name="EnableVerimatrixLicenseForMAC">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Enable Verimatrix license for _mac.
</wsdl:documentation>
<wsdl:input message="tns:EnableVerimatrixLicenseForMACSoapIn"/>
<wsdl:output message="tns:EnableVerimatrixLicenseForMACSoapOut"/>
</wsdl:operation>
<wsdl:operation name="DisableVerimatrixLicenseForMAC">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Disable Verimatrix license for _mac.
</wsdl:documentation>
<wsdl:input message="tns:DisableVerimatrixLicenseForMACSoapIn"/>
<wsdl:output message="tns:DisableVerimatrixLicenseForMACSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPChangeFriendlyName">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPChangeFriendlyName
</wsdl:documentation>
<wsdl:input message="tns:TSMPChangeFriendlyNameSoapIn"/>
<wsdl:output message="tns:TSMPChangeFriendlyNameSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPFastChannelListUpdate">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPFastChannelListUpdate
</wsdl:documentation>
<wsdl:input message="tns:TSMPFastChannelListUpdateSoapIn"/>
<wsdl:output message="tns:TSMPFastChannelListUpdateSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPReconfigureSTBDevices">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPReconfigureSTBDevices
</wsdl:documentation>
<wsdl:input message="tns:TSMPReconfigureSTBDevicesSoapIn"/>
<wsdl:output message="tns:TSMPReconfigureSTBDevicesSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPBlockDeblockSTBDevices">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPBlockDeblockSTBDevices
</wsdl:documentation>
<wsdl:input message="tns:TSMPBlockDeblockSTBDevicesSoapIn"/>
<wsdl:output message="tns:TSMPBlockDeblockSTBDevicesSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevicesOnlyFromMACS">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPDeleteSTBDevicesOnlyFromMACS
</wsdl:documentation>
<wsdl:input message="tns:TSMPDeleteSTBDevicesOnlyFromMACSSoapIn"/>
<wsdl:output message="tns:TSMPDeleteSTBDevicesOnlyFromMACSSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevices">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPDeleteSTBDevices
</wsdl:documentation>
<wsdl:input message="tns:TSMPDeleteSTBDevicesSoapIn"/>
<wsdl:output message="tns:TSMPDeleteSTBDevicesSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPGetCurrentSituation">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPGetCurrentSituation
</wsdl:documentation>
<wsdl:input message="tns:TSMPGetCurrentSituationSoapIn"/>
<wsdl:output message="tns:TSMPGetCurrentSituationSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesNewLicense">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPSecurityPackagesNewLicense
</wsdl:documentation>
<wsdl:input message="tns:TSMPSecurityPackagesNewLicenseSoapIn"/>
<wsdl:output message="tns:TSMPSecurityPackagesNewLicenseSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesActive">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPSecurityPackagesActive
</wsdl:documentation>
<wsdl:input message="tns:TSMPSecurityPackagesActiveSoapIn"/>
<wsdl:output message="tns:TSMPSecurityPackagesActiveSoapOut"/>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesFreeLicense">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TSMPSecurityPackagesFreeLicense
</wsdl:documentation>
<wsdl:input message="tns:TSMPSecurityPackagesFreeLicenseSoapIn"/>
<wsdl:output message="tns:TSMPSecurityPackagesFreeLicenseSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TSMediaProxySoap" type="tns:TSMediaProxySoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="TTT">
<soap:operation soapAction="http://tempuri.org/TTT" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="AAATestGenericMethod">
<soap:operation soapAction="http://tempuri.org/AAATestGenericMethod" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="EnableVerimatrixLicenseForMAC">
<soap:operation soapAction="http://tempuri.org/EnableVerimatrixLicenseForMAC" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="DisableVerimatrixLicenseForMAC">
<soap:operation soapAction="http://tempuri.org/DisableVerimatrixLicenseForMAC" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPChangeFriendlyName">
<soap:operation soapAction="http://tempuri.org/TSMPChangeFriendlyName" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPFastChannelListUpdate">
<soap:operation soapAction="http://tempuri.org/TSMPFastChannelListUpdate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPReconfigureSTBDevices">
<soap:operation soapAction="http://tempuri.org/TSMPReconfigureSTBDevices" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPBlockDeblockSTBDevices">
<soap:operation soapAction="http://tempuri.org/TSMPBlockDeblockSTBDevices" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevicesOnlyFromMACS">
<soap:operation soapAction="http://tempuri.org/TSMPDeleteSTBDevicesOnlyFromMACS" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevices">
<soap:operation soapAction="http://tempuri.org/TSMPDeleteSTBDevices" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPGetCurrentSituation">
<soap:operation soapAction="http://tempuri.org/TSMPGetCurrentSituation" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesNewLicense">
<soap:operation soapAction="http://tempuri.org/TSMPSecurityPackagesNewLicense" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesActive">
<soap:operation soapAction="http://tempuri.org/TSMPSecurityPackagesActive" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesFreeLicense">
<soap:operation soapAction="http://tempuri.org/TSMPSecurityPackagesFreeLicense" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="TSMediaProxySoap12" type="tns:TSMediaProxySoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="TTT">
<soap12:operation soapAction="http://tempuri.org/TTT" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="AAATestGenericMethod">
<soap12:operation soapAction="http://tempuri.org/AAATestGenericMethod" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="EnableVerimatrixLicenseForMAC">
<soap12:operation soapAction="http://tempuri.org/EnableVerimatrixLicenseForMAC" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="DisableVerimatrixLicenseForMAC">
<soap12:operation soapAction="http://tempuri.org/DisableVerimatrixLicenseForMAC" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPChangeFriendlyName">
<soap12:operation soapAction="http://tempuri.org/TSMPChangeFriendlyName" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPFastChannelListUpdate">
<soap12:operation soapAction="http://tempuri.org/TSMPFastChannelListUpdate" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPReconfigureSTBDevices">
<soap12:operation soapAction="http://tempuri.org/TSMPReconfigureSTBDevices" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPBlockDeblockSTBDevices">
<soap12:operation soapAction="http://tempuri.org/TSMPBlockDeblockSTBDevices" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevicesOnlyFromMACS">
<soap12:operation soapAction="http://tempuri.org/TSMPDeleteSTBDevicesOnlyFromMACS" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPDeleteSTBDevices">
<soap12:operation soapAction="http://tempuri.org/TSMPDeleteSTBDevices" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPGetCurrentSituation">
<soap12:operation soapAction="http://tempuri.org/TSMPGetCurrentSituation" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesNewLicense">
<soap12:operation soapAction="http://tempuri.org/TSMPSecurityPackagesNewLicense" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesActive">
<soap12:operation soapAction="http://tempuri.org/TSMPSecurityPackagesActive" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="TSMPSecurityPackagesFreeLicense">
<soap12:operation soapAction="http://tempuri.org/TSMPSecurityPackagesFreeLicense" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TSMediaProxy">
<wsdl:port name="TSMediaProxySoap" binding="tns:TSMediaProxySoap">
<soap:address location="[HIDDEN]"/>
</wsdl:port>
<wsdl:port name="TSMediaProxySoap12" binding="tns:TSMediaProxySoap12">
<soap12:address location="[HIDDEN]"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks for the update, @sabiland
EDIT: Damn, xml is badly code-formatted. Any way to fix it?
I updated your comment and put the XML in a triple back-tick (```) block.
May I also ask which version of the .NET APM Agent you are using?
<package id="Elastic.Apm" version="1.16.1" targetFramework="net462" />
<package id="Elastic.Apm.AspNetFullFramework" version="1.16.1" targetFramework="net462" />
https://github.com/elastic/apm-agent-dotnet/pull/1811 merged, which likely fixes it - @z1c0 you probably looked into this more - I leave this to you. Maybe we can let the issue open until the fix is verified.
#1811 merged, which likely fixes it - @z1c0 you probably looked into this more - I leave this to you. Maybe we can let the issue open until the fix is verified.
Yes, makes sense @gregkalapos . I could verify the fix in my small reproducer, but maybe @sabiland you could also have a look? Your application is obviously more complex and perhaps a more adequate verifier.
How can I test this locally? I always add packages via Nuget. How to test this now?
How can I test this locally? I always add packages via Nuget. How to test this now?
If you clone this repository and replace your NuGet package references with project references to:
-
Elastic.Apm.csproj
-
Elastic.Apm.AspNetFullFramework.csproj
you will be able to run the latest source code.
Will try, but I cannot say when. I have lots of other things to do first.
Will try, but I cannot say when. I have lots of other things to do first.
No worries, I appreciate the effort!
@z1c0 Would it be helpful if I post here few of our XML requests (some of which failed with APM) and you test it? You would just have to make blank WebService with blank method and one class?
Hi @sabiland, does that mean that the problem still exists? Or didn't you get a chance to test the latest code yet? If you can provide me with a reproducer, I'm happy to run these tests, of course.
I just haven't be able to test it. Probably I won't have time to test it. That's why I offered XML requests, if you wish I can post them here.
Thanks, @sabiland - I'd appreciate that.
I have attached txt file with 9 separate XML SOAP requests. Nothing inside data is sensitive (enough), so I didn't modify any data. That being said, still try to keep this data private.
EDIT: Now that the issue has been confirmed and solved, I am removing XML SOAP examples. Not that anything could be done with them, but just for any case. If someone would still need samples, they can contact me.
Hi @sabiland,
I'm happy to tell you that I could successfully verify that the fix in #1811 resolves this issue.
With the WSDL definition above, I created a boiler-plate webservice and could reproduce the crash (w/o the fix from #1811) by POST
ing one of the payloads you provided.
More specifically, this curl
request ...
curl -v --request POST --header "Content-Type: application/soap+xml;charset=UTF-8" \
--data \
'<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<TSMPReconfigureSTBDevices xmlns="http://tempuri.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<_ADSLUsername>konec15</_ADSLUsername>
<_AccountID>15677091</_AccountID>
<_STBDevices>
<TSMPStbDevice>
<MAC>0004309EE0A0</MAC>
<STBType>345</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>ADSL2+</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>78DD128EBF6C</MAC>
<STBType>372</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>00043061AC76</MAC>
<STBType>296</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>ADSL2+</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>0004304EFD7A</MAC>
<STBType>149</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>00043078E4DF</MAC>
<STBType>320</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>ADSL2+</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>0004305344A5</MAC>
<STBType>149</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>ADSL2+</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>00043087F5ED</MAC>
<STBType>320</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>00043063E7B3</MAC>
<STBType>296</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>8C19B575E947</MAC>
<STBType>372</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>0004306EEB59</MAC>
<STBType>320</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>VDSL2B+LTE</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
<TSMPStbDevice>
<MAC>0004308453A4</MAC>
<STBType>320</STBType>
<Encoding>MPEG4</Encoding>
<FriendlyName xsi:nil="true"/>
<TVPackages>
<string>ts_svc</string>
<string>ts_live_pop4</string>
<string>ts_live_ita4</string>
<string>ts_live_std4</string>
<string>ts_live_cro4</string>
</TVPackages>
<SetVerimatrix>true</SetVerimatrix>
<IsSTBBlocked>false</IsSTBBlocked>
<IsNewZeroTouchActivation>false</IsNewZeroTouchActivation>
<Level2>ADSL2+</Level2>
<CatchupHoursInfo>168</CatchupHoursInfo>
<PackagesInfo>SiOL.T.O.PO.Reg3|SiOL.T.O.PO.Reg1|BB.T.IPTV.RV-01|SiOL.5028204N|SiOL.T.IPTV.RC-01S</PackagesInfo>
</TSMPStbDevice>
</_STBDevices>
</TSMPReconfigureSTBDevices>
</soap12:Body>
</soap12:Envelope>' \
http://localhost/Elastic.Apm.AspNetFullFramework.Tests.SampleApp/Asmx/FooService.asmx
... resulted in following exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement()
at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
Running the same request with the fix in #1811 applied, does not trigger this error anymore.
As already suspected, the size of the payload was causing these problems. This is also the reason that some of your supplied payloads work and others (the larger ones) don't.
Thanks for your help!
Vau great 👍! I would probably never be able to debug this (to think that size of the XML request would be the problem) 😆.
We have deployed latest Elastic.Apm.AspNetFullFramework
. It seems everything works ok now. But, I have noticed that maybe not all events (XML Posts to WebService) are captured by APM for analytics? Could this be possible? Most of the XML Posts are captured in analytics, but at least one is missing (that is one with largest XML load).
Hi, thanks for reporting back. You might hit the limitation regarding non-buffered requests described here.