IIS service hanging when re-starting

27 10 2011

I’ve been doing some changes on our workflow websites and restarted IIS, however the World Wide Web Publishing service got hung in the status “Stopping” and IIS manager couldn’t force it to restart either.

So if nothing seems to work and you unable to restart your physical server, you can easily force kill the IIS process with the following command in DOS: Taskkill /F /FI “SERVICES eq w3svc”





Installing Pre-requisite software for Workflow error

5 10 2011

I’ve just been installing Workflow on a client site running Windows Server 2008 R2 and came across a strange error.

When selecting the workflow component to install, it requested to install prerequisite software “IIS” and “.NET 2.0″ However when clicking yes, it failed to install IIS and wouldnt allow me to continue. I managed to resolve the error with fixes.

  1. Ensured that no other Server Role Manager sessions were running/installing roles. (I was receiving the following error message in the IisInstall log file: Error (Id=0) Roles or features are currently being added or removed on this computer. Only one user can add or remove roles or features at a time to prevent conflicting configurations.” )
  2. I was also received the message “Error (Id=0) ArgumentNotValid: Feature not valid: ‘NET-XPS-Viewer’. The name of the feature was not found.” which we managed to resolve by modifying the line <Feature Id=”NET-XPS-Viewer” /> to <Feature Id=”XPS-Viewer” /> in the ServerManagerCmdInputIIS.XML file in the support folder of you AX2009 setup folder.

I hope this helps somebody struggling with this issue.
Happy Daxing
Jonathan.

 





How to run multiple Dyanamics AX workflow websites on IIS 7

10 12 2010

Previously I have written up a post on how to run multiple workflow websites on the same server. The instructions are pretty IIS 6.0 specific, so here is an update on how to do this on IIS 7.

Step 1 – Create a new business connector configuration
1. Click start, control panel, administrative tools, Microsoft Dynamics AX 2009 Configuration.
2. Select Busines Connector from “Configuration Target”
3. Click Manage, Create Configuration.
4. Provide an intuitive name for the business connector configuration e.g. AX2009_DEV. You will need to use this in a few minutes again, so make a note of it.
5. Click ok.
6. Select Connection tab, select the AOS that is already there and click edit.
7.  Provide the correct server name, instance name and TCP/IP port, click ok.
8. Click apply to save your new configuration.
9. Select your previously selected configuration and click ok (this is so that your already existing website will still work).

Step 2 – Duplicate the website files
1. Open up My Computer and navigate to c:/Program Files/Microsoft Dynamics AX/50
2. Duplicate the Workflow folder  and rename the new folder to something intuative like “WorkflowDev”
3. Edit the web.config file inside the newly created folder using Notepad or similar text editor.
4. Replace the line “<appSettings/>” with

<appSettings>
<add key="BUSINESS_CONNECTOR_CONFIGURATION" value="[BUSINESS CONNECTOR NAME FROM STEP 1.4]" />
</appSettings>

5. Save and exit notepad

Step 3 – Create your website application pool
1. Open IIS Manager: Start, Control panel, Administrative Tools, Internet Information Services (IIS) Manager
2. Expand your server node, Click application pools.
3. Click add Application Pool (on the right)
4. Enter and Application pool name E.G. MicrosoftDynamicsAXWorkflow50Dev
5. Select .Net Framework v2.0.50727
6. Select Classic from the Managed pipeline mode.
7. Click ok to close.
8. Select your newly created application pool, click advanced settings.
9. Ensure that the managed Pipleine mode is set to classic.
10. Under Process Model -> Identity, click “…”, select custom account, click select, enter your bcproxy account details used for your previous workflow website. e.g. domain\bcproxy. Click ok to close, click ok to close the select window.
11.  Set the IdleTime-out (minutes) setting to 0.
12. Set Regular Time Inteval (minutes) (under Recycling section) to 0.
13. Click ok. Your application pool is now setup.

Step 4 – Create Application
1. In IIS Manager, expand the Sites node, expand “default website”
2. Right click on default website and click “Add Application”
3. Provide a name for your application e.g. MicrosoftDynamicsAXWorkflow50Dev
4. Select the application pool you created in step 3
5. Under the physical path node click … and browse to the folder you copied in step 2. e.g. C:/Program Files/Microsoft Dynamics AX/50/WorkflowDev, click ok
6. Ensure that your connect as settings are set to Pass-through authentication.
7. Click ok.

Step 5 – Select your website with AX.
1. In Dynamics AX 2009, naviagate to Administration -> Setup -> Workflow Infrastructure configuration wizard, under website select your new application that you created e.g. http://myserver:80/MicroftDynamicsAXWorkflow50Dev
2. Validate the website and complete the wizard.

You should now have multiple workflow websites running successfully in IIS 7.0

For more information on setting up your workflow infrastructure in dyanmics Ax 2009 check out this post.

Happy Daxing!





No .NET Business connector session found.

2 11 2010

My quick fix for the day. If you are getting an error message “No .NET Business connector session found.”  in your system event log, there may be a number of things to look at, however the first thing to check is whether the default business connector on your IIS machine is set up and pointing to the correct AOS. This may occur on development servers with multiple AOS instances. You can take a look at this post how to setup multiple workflow websites on the same machine in order to avoid this issue.

Happy Daxing





Workflow Installation and Configuration Document

15 07 2010

The last couple of weeks, I have been receiving a number of useful links and resources related to Workflow in Dynamics AX 2009. This week I was pointed to two excellent resources on workflow, from a the “AXFactor” blog by Sumit Loya.

The first document deals with all the Installation and Configuration requirements for the workflow infrastructure in Dynamics AX 2009. It is very thorough and deals with, amongst other things, required user accounts and permissions, all the security issues that you will come across in both IIS and Dynamics, prerequisites for installation, installing the website, configuring batch inside AX and managing running Workflows. It is a definite must ready and handy reference book. After reading this document I felt like removing my post on Installation and Configuration, as Sumit is much more comprehensive and helpful. Thank-you for this excellent resource!!

View Original blog post at the AXSumit here
Download from Axaptapedia here

*UPDATE: Checkout the workflow development document too over here.





Workflow Walkthrough – Infrastructure

12 01 2010

Ok. So far on this blog I’ve been covering bugs, tricks and other issues relating to Dynamics AX workflow. However I haven’t yet provided any formal walk-throughs of workflow in its entirety. So here is my opportunity to add something of which I hope will be real value when creating new workflow templates, configurations and setting up of the workflow infrastructure.

So lets start at the beginning shall we.

Basic Requirements for Workflow to Be installed

  1. Dynamics AX AOS with at least SP1 installed
  2. IIS server.
  3. .Net Business Connector (installation described during this tutorial)
  4. EP Licence (Not officially required, but needed for .Net Business Connector)

Step 1 – Workflow Website Installation

Before creating our workflow templates or configuring pre-existing DAX templates, we need to setup the workflow infrastructure including the Windows Workflow Foundation Framework, .net business connector etc, relevant system users and a number of configurations within AX itself. So first things first. Lets setup out Workflow Website containing Windows Workflow Foundation.

  1. Install Internet Information Services (IIS)
  2. Setup a default website on IIS
  3. Run the Dynamics AX server installation file on your IIS machine
  4. Select ‘Add/Remove Components’
  5. Select .NET Business Connector
  6. Click next.
  7. Select a Language for the .NET Business Connector.
  8. Click next.
  9. Click Finish when the .NET Business Connector has finished being installed.
  10. Run the Dynamics AX server installation file on your IIS machine again
  11. Select ‘Add/Remove Components’
  12. Select ‘Workflow’ (Ensure that your active Dynamics AX .NET business connection configuration on your IIS machine (previous steps) is pointing to the correct AOS as the setup wizard will need to connect to your AOS to make some changes)
  13. Click Next
  14. You will be requested to enter a username and password for the user that your business connector will use to login to your AX environment. If you have previously set this up in your environment, the username will not be available to change. You can later set this up in your environment by going to Administration -> Setup -> Security -> System Service Accounts
  15. Select your default website that you would like to add you Workflow Virtual directory/Application to. You can install this to your sharepoint site if you so wish.
  16. Click Next
  17. Select the system account that your AOS is running as, so that the setup wizard will add this user to the list of users allowed to access the workflow website
  18. Click Next
  19. Click Install
  20. Click Finish when the Workflow Installation wizard has finished.

Your workflow infrastructure should now all be ready.

Should you wish to have multiple AOS environments all running Workflow, but only 1 IIS server, see this post for more details.

Step 2 – Configure your AOS

  1. Login to your Dynamics AX Environment as and administrator User.
  2. Ensure that your email server parameters are correctly setup (Administration -> Setup -> E-mail parameters)
  3. Setup your System Service Accounts (Administration -> Setup -> Security -> System Service Accounts)
    1. Business Connector Account (account used to login to your workflow website and other external tools)
    2. Workflow System Account
    3. Workflow Execution Account
  4. Setup a batch server (Administration -> Setup -> Server Configuration)
  5. Setup a workflow batch group (Administration -> Setup -> Batch Groups), give it a name like WF or WORKFLOW
  6. Run the workflow infrastructure configuration wizard (Administration -> Setup)
    1. In the first screen click Next
    2. Enter the full Workflow Website address that you created above if not already populated
      1. E.G. http://MYSERVER:80/MicrosoftDynamicsAXWorkflow50
    3. Click Validate, you should get a message such saying ‘Workflow runtime URL is valid’ if not you have not setup either your business connector account successfully or the workflow website is not functioning properly.
    4. Click Next
    5. Select the batch group that you created above (this is for the message processing batch job)
      1. If this is greyed out, you can cancel the batch the wizard and go back and delete your already existing workflow message processing batch job)
    6. Click Next
    7. Select the batch group that you created above (this is for the expired workitems batch job)
      1. If this is greyed out, you can cancel the batch the wizard and go back and delete your already existing due date workflow batch job)
    8. Select a recurrence time for how often you want workflow to check for expired workitems, by default this is every hour.
    9. Click Next
    10. Click Next to confirm, this will create the necessary batch jobs for workflow workitem processing as well as due date checking.
      1. To confirm that the batch jobs were create you can check under (Basic -> Enquiries -> Batch Job). There should be 2 new batch jobs created and in a waiting state (“Workflow Message processing” and “Workflow Due date expirations”)
  7. Setup your workflow per company
    1. Setup Workflow Email template (for workitem assignments) (Basic -> Setup -> E-mail Templates)
      1. Create a new Email template and name it “Workflow” or something similar, select default language and the name of the user that you want to appear in the Sender and Sender address fields in the email when the user receives a notification about new workitem)
      2. Create at least one language template, select a subject and provide the necessary contents for the email by clicking on the template button. You will be able to provide both a text as well as an HTML based template.
      3. You can use a number of ‘tags’ with in your template (and email subject) that will allow you to open and link to the correct notification or record within AX, or simply display more information about the workitem that the user is being emailed about. E.G:
        1. LinkToAlert%/”>View Alert (in the html editor)
        2. LinkToBusinessData%/”>View Record (in html editor)
        3. %Subject% – Displays the subject of the workflow (from WF Configuration)
        4. %Message% – Displays the instruction of the workflow (from WF Configuration)
    2. Setup number sequences (Basic -> Setup -> Number Sequences)
      1. Create number sequences that will be used for your configurations as well as for your actual running instances
      2. E.G.
        1. Configuration Number sequence:
          1. Number Sequence Code: Work_200
          2. Name: Work_200
          3. Smallest: 1
          4. Largest: 999999
          5. Next: 1
          6. Format: ######_200
        1. Instance Number sequence:
          1. Number Sequence Code: Work_201
          2. Name: Work_201
          3. Smallest: 1
          4. Largest: 999999
          5. Next: 1
          6. Format: ######_201
    3. Setup company (for each company) workflow parameters (Basic -> Setup -> Settings for Workflow)
      1. On the first tab select the email template that you have just created (Approval and task notifications)
      2. On the second tab (Administration), your workflow runtime (website) url should already be selected.
      3. On the third tab (Number sequences),  select number sequences created above for:
        1. Configuration Id Work_200
        2. Instance Id Work_201
      4. Close the settings for workflow screen
    4. You company/companies should now be all ready for you to begin developing or configuring workflows.

Keep your eyes open for the Workflow walk-throughs on Configurations and Template developments. Please let me know if you have any further comments or tips that you have discovered during workflow infrastructure configuration.

Enjoy Workflowing

Further reading:
Workflow Installation and Configuration





The request failed with HTTP status 405: Method Not Allowed.

11 12 2009

Recently on the Axapta-Knowledge-Village discussion board, the following workflow issue was raised, the user had an error when trying to validate his workflow url with the following message being displayed: “The request failed with HTTP status 405: Method Not Allowed.” He was running on the following System configuration:
1. Windows 2008 R2 64 bit.
2. SQL Server 2008
3. IIS 7

To resolve this error. I believe the simple solution suggested by manoj is to set your IIS application Pool’s 32bit property to true

IIS –>Application pool of WF–> rightclick advanced settings and change 32 bit to TRUE.





IIS Permissions for Dynamics AX workflow and All that

15 10 2009

Ok, here’s the scenario.

One sets up a workflow for a client, does comprehensive testing on their test environment and then take it to their live environment. You then go through a checklist of all the workflow hoops that you must hop through for the infrastructure to work correctly, setting up Business connector account, batch jobs, IIS website etc, then you wait to see if all works correctly when the client submits their first record (as you don’t want dirty data). Then you get the dreaded call that Workflow is not working and that somebody is getting many emails saying vaguely that workflow failed to communicate as desired. So today I wrote a small test workflow that enables one to run a record through from start to finish to see if all is well. If anyone is interested in getting hold of this just drop a comment or pop me an email. Its a really basic form with a single approval with everything setup, all thats left is to create a configuration.

However all of that aside, I have a client (running separate machine for IIS and AOS) that I didn’t do this to and got the call awhile later requesting support. Their event logs were displaying the following on the AOS machine

Exception thrown in     
SysWorkflowEventDispatcher-onAcknowledgeWorkflowActivation    
SysWorkflowEventDispatcher-raiseWorkflowActivationEvent        : 
Web service failed: workflow id WI000002AS Server was unable to process request. 
---> Access is denied

and the following on the IIS Machine:

An unhandled exception occurred and the process was terminated.
Application ID: /LM/W3SVC/1114387320/ROOT/MicrosoftDynamicsAXWorkflow50
Process ID: 4776

Exception: System.UnauthorizedAccessException

Message: Access to the port is denied.

StackTrace:    at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
at System.Threading.Semaphore..ctor(Int32 initialCount, Int32 maximumCount, String name)
at Microsoft.SharePoint.Publishing.BlobCache.GetCacheTokenThreadStart()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

The underlying connection was closed: An unexpected error occurred on a receive.

We solved the error by adding the Business Connector user to the administrators group on the IIS Machine, and all came right. For the moment this is a temporary hack. Still investigating the precise permissions needed to get this to work with security properly in tact. Anyone have any ideas? I’ll keep you posted on progress. So far checkout technet for official requirements for business connector, apparently you only need IIS_WPG (IIS Worker Process Group) and “STS_WPG (STS Worker Process Group), if running Windows SharePoint Services”

Cheers!








Follow

Get every new post delivered to your Inbox.

Join 254 other followers

%d bloggers like this: