Skip to main content

Posts

Debugging .Net Components called from Python, being run from a Batch Script, executed by the Windows Task Scheduler (Part 2)

In  Part 1  We identified the problem i was recently asked to investigate and looked at getting some output from the batch script being run by the Windows Task Scheduler. As this was a production environment, there was little that could be modified and remote debugging wasn't an option. In this part 2 post, we will continue to fault find touching on the Python and .Net components i mentioned previously and get to the point where the problem is fully identified and subsequently fixed without any changes made to the production code. Having started to receive output, the next step was to make some sense of it. The first thing i did was wrap the area of interest in the python script with a try catch 1) some generic exception try: except: print "Exception: %s" % (sys.exc_info()[0]) Exception: Query Error This was at least a start in that it looked database related at this point The next task was to identify the type of exception being thrown
Recent posts

Visual Studio 2017 RC installation

A quick look at the Visual Studio 2017 RC installation and first impressions on the look and feel of the new IDE My first impressions are really good. The web install genuinely took around 7 minutes and I was up and launching a new Asp.Net Core boilerplate application in a further 2 minutes, allowing for first time customisation and profile configure. That’s zero to hero in under ten minutes which is finally a wait time I can work with and will no doubt encourage non Microsoft Developers to just give it a try. I decided to go for the community edition for simplicity. The new setup experience The installer has been written from the ground up and it certainly feels nicer than the typical Microsoft Installer experience of not so long ago. I really like the select what you need approach and add later, which has always been possible but is a cleaner approach where you are selecting your intent rather than a host of individual features typical of a custom install.

Switching between DevOps Azure Artifacts and local Project references during development and debugging

Stumbled on a nice extension today for VS in the marketplace which allows simplified switching of references between NuGet package feeds and local references. If like me, you have multiple feeds for your packages via DevOps Artifacts, the Nuget Gallery, MyGet Feeds and personal feeds, it can sometimes be a challenge to switch between references to debug or extend some functionality. If you would like some hands on expertise for your business feel free to reach via my company  assemblysoft   or checkout some other musings via my blazor.net and azure blog here  carlrandall.net

Debugging Python and Iron Python using Visual Studio

Now Python is a first class citizen since the release of Visual Studio 2017 and can be configured directly from the Installation IDE, below are a few settings worth bookmarking for your next python integration project. Debugging Python One of the first things you are going to want to do is step through your code when using Visual Studio, particularly as the language is dynamic and inspection of local and global scope soon becomes necessary. One thing to note is that if you start from a native python project, this is all wired up for you but if you are using .Net to call python modules or want to support an older python version, such as 2.7, you will soon see that breakpoints are not being hit due to symbols not being loaded.   Enable Just My Code To distinguish user code from non-user code in .net, Just My Code looks at two things: PDB (Program Database) files, and Optimization Program Database A .pdb file, otherwise known as a symbol file, maps the identifiers

How to identify which version of the .Net Framework you have installed

A recent legacy application port, to containerize, as a docker image, running as an Azure Web App, AKA  Web App for Containers , required a custom install of .Net 4.6.1. As part of testing an upgrade from an unsupported .Net Framework version 4 The following is a useful way to determine the version of the 4 framework installed. Instead of creating a new hive under the NDP, a modification is performed to update the version, which on first glance is not obvious. The first thing i encountered was a 500 error message on the site, with no application error log entries as it had not made it that far in the pipeline. was an initially confusing error message in the event viewer detailed below: https://stackoverflow.com/questions/31253747/method-not-found-0-system-array-empty Launch the registry editor by typing  regedit  in a  Run  box. On the left-hand side, navigate to  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full If the  Full  subkey is not present, t

A(I) Picture paints a thousand words...

During a recent review of a client's Azure application and part of a Digital Transformation requirement the lights came on for us all after a simple whiteboarding session. Often when technical concepts are being explained, it is difficult to visualise the primary building blocks and interactions of a system at a high level. After just a few minutes at the whiteboard we were able to quickly confirm our understanding of the existing solution and effectively contribute to a plan of next steps to support the transformation process going forward and detail some business and technical requirements. Another tool that can really help to take white board sketches to a new level is Sketch2Code which transforms a hand-written user interface design into valid working wire-frame. It is a web based app that captures the whiteboard image and converts it to a usable HTML prototype. The benefits of this type of approach are great because each and every stakeholder is able to add real

Azure DevOps Authorisation

Managing whether an identity has access to a given  service, feature, function, object, or method in Azure DevOps comes down to authorisation. Fortunately, by default, the DevOps permissions are set in such a way to enable you to focus on the job at hand, DevOps. Loosely translated this means 'don't get in my way'. My experience is that the Azure DevOps team have done a good job at this, enabling you to crack on developing, building, testing and releasing without much hindrance. Working with relaxed permissions is great when you are the owner and possibly either a one man band or small team but as soon as we need to consider larger teams, varying roles with approvals and degrees of access, authorisation becomes a real concern. I was recently involved in a project utilising offshore developers where trust was a concern and a number of specific teams handling specific roles needed to come together to approve a set of pipelines.  This article is a pick of findings a