Skip to main content

Posts

Showing posts from March, 2020

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 A call was being mad…

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.









It then picked up my profile s…

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 assemblysoftor 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 CodeTo distinguish user code from non-user code in .net, Just My Code looks at two things: PDB (Program Database) files, and Optimization Program DatabaseA .pdb file, otherwise known as a symbol file, maps the identifiers that you create in source c…

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\FullIf the Full subkey is not present, then you do not have the .NE…