Runscope has recently become a must have tool for me when building integrations with cloud applications such as Office 365 and Salesforce. This past week I used Runscope to debug an issue with a remote event receiver I’d written for Project Online. This is such an awesome and easy to use tool, I wanted to be sure all the cloud devs are aware and know how to make use of it.
I built a WCF service which serves as the endpoint for an event receiver in Project Online, hosted in Office 365. The WCF service is hosted on Windows server, on a dev box virtual machine in Azure. In testing, it appeared as though Project Online was not calling my WCF service. Since this was a dev environment, I attached the Visual Studio debugger and enabled WCF logging. Neither of these options indicated that the call from Project Online was making it through to my WCF service.
In an ideal world, I could view the ULS log in Project Online for easy access to errors generated as a result of the failed event receiver, but this is not an ideal word; it’s the multi-tenant cloud world of Office 365.
Runscope serves as a middle tier proxy which can be inserted between Project Online in Office 365 and my WCF service hosted in Azure. Once configured, Runscope will record all requests from Project Online to my WCF service. I can view the results, edit, and replay requests! Sounds complicated, but it’s not.
Navigate to www.runscope.com and sign up for an account. Once you are logged, create a new bucket and name it anything you like.
Click the link for Traffic once the bucket has been created.
The start page for the new bucket includes a form you can use to create the runscope url. In the example below, I entered the url path to my WCF service at https://cloud-app.threewill.com. Just below, Runscope provides an endpoint which can be used to log requests.
In this example, I originally configured my Project Online event receiver to call into the WCF service at https://cloud-app.threewill.com/projectonline/StatusingEventReceiver.svc. Using Runscope, I configured Project Online to call the event receiver at https://cloud–app-threewill-com-mv9k3q9xyz3v.runscope.net/projectonline/StatusingEventReceiver.svc. As a quick test, simply place the url in your browser. You should see an entry appear in the runscope log.
Watch as Runscope logs server to server activity, errors and more.
From the traffic log (shown above) you can view the full detail of the request and response. And, you can easily edit and resend any request!
As for my issue, Runscope revealed that the request was making it to my server, and the server replied with a 404. This helped by confirming that Project Online was attempting to make the call and basic connectivity between Project Online and my WCF service was successful. The 404 reply led me to find that my WCF bindings were incorrect for a service hosted over SSL.
Runscope is a must have in my toolbox for cloud service integrations such those hosted in Office 365 and Salesforce. Of course, there are other ways to debug cloud integration issues such as the one I encountered, but this is so easy, I recommend it as your first step.
Do you have any favorite tools for debugging cloud app dev projects? Have you used other features in Runscope that are a must have for app dev in the cloud? I’d love to discuss in the comments section below.read more