In Exchange 2013, when you use OWA to book a room, there can be two methods that get called for this to occur. Both of these methods start workflows against service.svc and you can see this in the client behavior via the following URLs: https://<vanityDomain>/owa/service.svc?action=GetRoomLists&ID=-<ID>&AC=1https://<vanityDomain>/owa/service.svc?action=GetRoomsInternal&ID=-<ID>&AC=1 The first method, GetRoomLists, returns all rooms found in room lists (Get-DistributionGroup…
OAB: BITS Provides Data for Troubleshooting
At certain times, it may become necessary to troubleshoot OAB downloads from the client-perspective. This has been used for both internal and external customer issues with OAB and I thought would prove useful to discuss. We can get a general, overall view of what is occurring on the client machine, according to BITS, via Windows…
Exchange: Non-Discriminant Mailbox Moves
I had to rebuild my lab and in one of the invariable problems of doing this is that the default database is created and by the time you do any administration in Exchange, mailboxes exist on it. I had to come up with a sure-fire way to balance moves between the two mount-points I had…
Exchange: Recovering a Database from Dirty Shutdown (the Easy Way)
In testing (and production), we invariably run into problems where the database will be in a 'bad state'. In my case, I pulled Store service out from under it (disabled and stopped the service) and this caused the database to go into dirty shutdown: eseutil.exe /mh "C:\Databases\EMEA-SWEEX15-01 Store 001\EMEA-SWEEX15-01 Store 001.EDB" Extensible Storage Engine Utilities…
C#: Returning an Object via System.Threading.Tasks.Task<T>
In programming something (in EWS), discovered the joys of what I believe was 'lock contention'. To explain, first we need to cover Tasks. Async Tasks (which call 'await' against other tasks) will only perform the action requested, if you do not specify a managed object to handle. For example, if I call an async for…
C#: Returning ADSI COM Properties of a User Object (Or Any Object, Really)
A few months ago, I was working on a project to query for specific AD properties of a user-object programmatically. I knew the properties I wanted to return and I had worked with returning properties in ExBPA/HRC. I hadn't, however, found the joys of receiving a System.__COM object in any of my returns until now….
Exchange 2013: MailboxTransportMBTDeliveryPercentPermanentFailedMonitor Fires When User is Over Quota
In Exchange 2013, there may be an instance where a user is over-quota and causes the Mailbox Transport responder to escalate. This issue is specific only to Mailbox Delivery and there are some simple steps to prove that this is a 'by-design' scenario. Check the current value of the counter, run command: Get-Counter "\MSExchange Delivery Store…
Exchange 2013: When the DAG NIC Affects Transport, That Can't Be Good
In my on-premises Exchange 2013 lab, there was a queue built up to a mailbox: Get-TransportService | Get-Queue | Where{$_.MessageCount -gt 0} | FT -AutoSize Identity DeliveryType Status MessageCount Velocity RiskLevel OutboundIPPool NextHopDomain ——– ———— —— ———— ——– ——— ————– ————- Stromkarlen\3 SmtpDeliveryToMailbox Retry 15 0 Normal 0 emea-sweex15-01 store 001 What’s interesting about the queue is…
O365: CDN Change Causes OWA Client Error
Recently, we've seen a pattern of escalations wherein users are no longer able to access OWA. Specifically, the error will be similar to the following: In the details, we'll see the error we're concerned with: X-OQA-Error: ClientError;exMsg=’_g’ is undefined; file=https://pod51048.outlook.com/owa/:362 If we use Network Tracing (F12 in Internet Explorer) [or Fiddler] we'll see a failure…