Friday, 30 December 2016

SendNotificationResult

For anyone trying to work out why Microsoft Exchange Push notification message responses are not being accepted by the server, it has taken me a while, but it seems to be that it does not accept a "chunked" response.

We were sending a response from a CGI script from apache, and that is normally chunked.

But there is no way to guess what is wrong. Lots of examples on the Internet, but none worked.

We were sending text/xml with :-

<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<SendNotificationResult xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<SubscriptionStatus>OK</SubscriptionStatus>
</SendNotificationResult>
</Body>
</Envelope>
"

I tried every combination of xmlns tagging and all sorts, eventually solved the problem by sending with a Content-Length rather than chunked. That is what it wanted.

Arrrrg!

But I guess it is in line with the rest of the documentation, which is pretty crap (in my opinion), e.g. one page listing a field as URL in one place and Url in another, and we had the wrong one. You just have to guess what is wrong half the time.

Anyway, this blog is for those looking for Wisdom of the Ancients thanks to XKCD



5 comments:

  1. Not sure of the context of this post as you've not really explained anything about it, but... enabling chunked capability can be done on the client access servers for exchange in IIS for the web services.

    ReplyDelete
    Replies
    1. Interesting - why would it have any reason to even be an "option" to enable/disable that? The context is trying to respond to a push notification from an exchange server in a way that it is happy with. Simple as that. Thanks for the tip.

      Delete
    2. It's Microsoft... ;p

      P.S. Did you know your upstream NTP provider, Linx, isn't advertising tonight's leap second?

      Delete
    3. I think we sync of several NTP servers, it is just standard ntpd

      Delete
  2. Yours is showing 195.66.241.2 as its stratum 1 server which resolves to ntp0.linx.net Guess they haven't configured the leap seconds file or loaded the latest one? http://support.ntp.org/bin/view/Support/ConfiguringNTP#Section_6.14.

    ReplyDelete