The SOAP Logger is a tool that is located in the CRM SDK at: SDK\SampleCode\CS\Client\SOAPLogger
You will see the files:

Open the solution in Visual Studio. Update any references. Open the SOAPLogger.cs file. You will see:

Find the run procedure:

This procedure will run a command and then write to an output.txt file the SOAP request and response. Add some code, for example all accounts that contain “a”:
var query = new QueryExpression("account");
query.Criteria.AddCondition("name", ConditionOperator.Equal, "Microsoft");
slos.RetrieveMultiple(query);
Build and run the solution. You will be prompted to enter your server details. The code will then run:

Now go to your debug folder. You will see an ouput file has been created.
![]()
The output file will contain request and response details.
HTTP REQUEST -------------------------------------------------- POST https://xxxxxxx.api.crm.dynamics.com/XRMServices/2011/Organization.svc/web Content-Type: text/xml; charset=utf-8 SOAPAction: http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/RetrieveMultiple <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <RetrieveMultiple xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <query i:type="a:QueryExpression" xmlns:a="http://schemas.microsoft.com/xrm/2011/Contracts"> <a:ColumnSet> <a:AllColumns>false</a:AllColumns> <a:Columns xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> </a:ColumnSet> <a:Criteria> <a:Conditions> <a:ConditionExpression> <a:AttributeName>name</a:AttributeName> <a:Operator>Equal</a:Operator> <a:Values xmlns:b="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <b:anyType i:type="c:string" xmlns:c="http://www.w3.org/2001/XMLSchema">Microsoft</b:anyType> </a:Values> <a:EntityName i:nil="true" /> </a:ConditionExpression> </a:Conditions> <a:FilterOperator>And</a:FilterOperator> <a:Filters /> </a:Criteria> <a:Distinct>false</a:Distinct> <a:EntityName>account</a:EntityName> <a:LinkEntities /> <a:Orders /> <a:PageInfo> <a:Count>0</a:Count> <a:PageNumber>0</a:PageNumber> <a:PagingCookie i:nil="true" /> <a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount> </a:PageInfo> <a:NoLock>false</a:NoLock> </query> </RetrieveMultiple> </s:Body> </s:Envelope> --------------------------------------------------
Response:
HTTP RESPONSE
--------------------------------------------------
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<RetrieveMultipleResponse xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<RetrieveMultipleResult xmlns:a="http://schemas.microsoft.com/xrm/2011/Contracts">
<a:Entities>
<a:Entity>
<a:Attributes xmlns:b="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<a:KeyValuePairOfstringanyType>
<b:key>accountid</b:key>
<b:value i:type="c:guid" xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/">d3ae1b3a-8bd2-e411-80ef-c4346bac7be8</b:value>
</a:KeyValuePairOfstringanyType>
</a:Attributes>
<a:EntityState i:nil="true" />
<a:FormattedValues xmlns:b="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<a:Id>d3ae1b3a-8bd2-e411-80ef-c4346bac7be8</a:Id>
<a:KeyAttributes xmlns:b="http://schemas.microsoft.com/xrm/7.1/Contracts" xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<a:LogicalName>account</a:LogicalName>
<a:RelatedEntities xmlns:b="http://schemas.datacontract.org/2004/07/System.Collections.Generic" />
<a:RowVersion>600729</a:RowVersion>
</a:Entity>
</a:Entities>
<a:EntityName>account</a:EntityName>
<a:MinActiveRowVersion>-1</a:MinActiveRowVersion>
<a:MoreRecords>false</a:MoreRecords>
<a:PagingCookie><cookie page="1"><accountid last="{D3AE1B3A-8BD2-E411-80EF-C4346BAC7BE8}" first="{D3AE1B3A-8BD2-E411-80EF-C4346BAC7BE8}" /></cookie></a:PagingCookie>
<a:TotalRecordCount>-1</a:TotalRecordCount>
<a:TotalRecordCountLimitExceeded>false</a:TotalRecordCountLimitExceeded>
</RetrieveMultipleResult>
</RetrieveMultipleResponse>
</s:Body>
</s:Envelope>
--------------------------------------------------
I AM SPENDING MORE TIME THESE DAYS CREATING YOUTUBE VIDEOS TO HELP PEOPLE LEARN THE MICROSOFT POWER PLATFORM.
IF YOU WOULD LIKE TO SEE HOW I BUILD APPS, OR FIND SOMETHING USEFUL READING MY BLOG, I WOULD REALLY APPRECIATE YOU SUBSCRIBING TO MY YOUTUBE CHANNEL.
THANK YOU, AND LET'S KEEP LEARNING TOGETHER.
CARL
