Docker WorkflowGen Testing Error

Using mcr.microsoft.com/windows/servercore:ltsc2016 image as a base I created a WorkflowGen container for version 7.8. In this container i can create new workflow and delete old container (showing the permission are set correctly), but when I try to test a workflow I get the following error:


This error was caused after hitting ‘test’ on a workflow created using a simple template (no .net code), this error also applied to other workflow created on the localhost(in the docker container and on the host machine).

I was wondering if this error could be related to the docker container ( I don’t think so, because I removed some features i added in the docker container(ftp , ports , permissions) and the error persisted) or could this be an issue of how workflowgen acts while running on top of an image.

This image was created by starting IIS in the container, then copying all related files from the host machine to the container, setting up the application pool ( the same way it was on the hosts IIS), giving full permissions to IIS_IUSRS and IUSR.

Any help related to this would be appreciated.

Thomas L

Hi Thomas,

Unfortunately, Docker images are only supported for WorkflowGen 7.15 and 7.16 at the moment. We plan to extend that support to older 7.x versions in the coming months.

Here’s some advise to help you debug your problem. You may have better results using mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016 as a base image since it already includes the .NET Framework 4.8 with IIS.

The following code sample will install NodeJS correctly in your image:

    #escape=`
    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016

    ENV NODE_VERSION=10.16.1
    ENV NODE_SHA256=dc99f8c0be1e8bb1abfaa194113712ba85cc749bd32990f84cdcdd3b619f6a1c

    # Install NodeJS
    RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
        Invoke-WebRequest `
            -Uri ('https://nodejs.org/dist/v{0}/node-v{0}-x64.msi' -f $env:NODE_VERSION) `
            -OutFile C:\node.msi `
            -Verbose; `
        if ((Get-FileHash C:\node.msi -Algorithm SHA256).Hash -ne $env:NODE_SHA256.ToUpper()) { `
            Write-Error 'Hash string does not match the one of the downloaded package.'; `
        }`
        Start-Process -FilePath C:\node.msi -Wait -Verbose; `
        Remove-Item -Path C:\node.msi -Force -Verbose

    ENV IISNODE_VERSION=0.2.26

    # Install iisnode
    RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
        Invoke-WebRequest `
            -Uri ('https://github.com/azure/iisnode/releases/download/v{0}/iisnode-full-v{0}-x64.msi' -f $env:IISNODE_VERSION) `
            -OutFile C:\iisnode.msi `
            -Verbose; `
        Start-Process -FilePath C:\iisnode.msi -Wait -Verbose; `
        Start-Sleep -Seconds 30 -Verbose; `
        Invoke-WebRequest `
            -Uri 'http://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi' `
            -OutFile C:\rewrite.msi `
            -Verbose; `
        Start-Process -FilePath C:\rewrite.msi -Wait -Verbose; `
        Start-Sleep -Seconds 30 -Verbose; `
        Remove-Item -Path C:\rewrite.msi -Force -Verbose; `
        Remove-Item -Path C:\iisnode.msi -Force -Verbose

There are very handy tools for configuring IIS in PowerShell. See https://docs.microsoft.com/en-us/powershell/module/webadministration/?view=win10-ps for more information. You may be missing something important in the configuration of your applications or paths.

Regards,
Charles

I figured out the issue. The Port and IP in the Application URL(in web.config) was incorrect. After fixing the issue, the error went away.