Haaron Gonzalez Rotating Header Image

.NET

A quick tale from the SharePoint support trenches

Basically, the customer had a workflow, build in SharePoint Designer 2010 that will use some of the out of the box Actions like the Pause for Duration and Send Email. The issue was that once the workflow paused for a minute it wasn’t able to resume the work, leaving the workflow always running “In Progress”. Doing some research found KB2674684 SharePoint 2010: Workflow failed to run after pause and according to the description made me remember my good old ASP.NET developer days.

The bottom line is that SharePoint on premise is ultimately a Microsoft ASP.NET solution that works with multiple windows services and related Microsoft technologies/servers. From the web perspective Web Server Controls, Web User Controls, HTTP Handlers, Web Services, AJAX, ASPX pages, assemblies, web.config, page directives and so on are just pieces that work together to deliver a page that end users to consume.

Turns out that if you have the Workflow Timer Service started on a server that is running as an Application Server role “App” and you don’t have the SharePoint Foundation Web Application service started “basically the WFE role”, workflows will fail rehydrating the workflow when resume from a pause action, the reason why?, is because in order to rehydrate a paused workflow SharePoint needs to read some settings from the running web application web.config file, but because we have only the “App” role and not the “App/WFE” role running, it fails loading from the required Web Application the web.config file, because THERE IS NO web.config to load for that particular web application in the App server. The App Server without the SharePoint Foundation Web Application Service started only has available the Central Administration web application, not those additional web applications that WFE have available in IIS as a web site.

According to the article there are three methods for solving this issue:

  • Method 1: Locate one Web Front End server, which has Web Application service running, run the following PowerShell command to copy workflow-related configuration from the web.config to the configuration database so it will be available from every server in the Farm.

$webapp = Get-SPWebApplication -identity http://<web app name>

$webapp.UpdateWorkflowConfigurationSetttings()

  • Method 2: Start the Web Application Service on all servers that have the Workflow Timer Service is running.
  • Method 3: Disable the Workflow Timer Service on servers that are not running the Web Application service.

I decided to use Method 3 because we have dedicated App server and dedicated WFE server.

By the way, if you have Nintex Workflow installed in your farm, what just explain also apply. Nintex Workflow should run only n WFE servers, so make sure you Workflow Timer Service is stopped on all app servers in your farm.

Thanks for reading!

How to install .NET Framework 2.0 in Windows 8.1

Yes, I have older versions of products and development tools that require .NET Framework 2.0 or 3.0 and when trying to run in my Windows 8.1 just doesn’t work. Windows 8.1 inform that you need to add the software required, so when I run the built in download or update wizard I just don’t install what I need. Nothing happen, nothing, nada!. Then, I go and download .NET Framework 3.5 redistribute package and run and again Windows 8.1 download or update windows doesn’t do nothing. Doing some research turns out that there is some Group Policy we need to change in order to make it work.

The following image shows the steps for updating a specific group policy with a setting that will describe the path of the binaries required to update Windows 8.1 software, that mean, that you need to mount your Windows 8.1 installer ISO or put your Windows 8.1 installer DVD.

Update Group Policy in Windows 8.1 for supporting Windows 8.1 system updates

Update Group Policy in Windows 8.1 for supporting Windows 8.1 system updates

Then you just add the feature .NET Framework 2.0 using the regular Programs section in control panel.

Add .NET Framework 2.0 and 2.5 to Windows 8.1

Add .NET Framework 2.0 and 3.0 to Windows 8.1