Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>So there are a few things to remember when dealing with COM API that instantiates an application (such as the office COM) when working with HPC. You seem to have already covered permissions when run locally; however when running under the guise of a service it gets a bit trickier.</p> <p>HPC mocks IIS as it hosts your service; and as such has to be treated similarly; in IIS when you need to run one of these applications through a WCF Service you usually specify allowing the AppPool's identity to launch a profile which will give the application profile directories to access to perform actions. You also have to ensure that any settings you make to your app pools to run these services without HPC are also reflected within the Service Config file you place in the Service Registration directory for HPC.</p> <p>If this application is a 32 bit application (your application not COM+) you must add an entry to the SericeRegistration Tag to specify this the same way you configure application pools in IIS to accept x86 applications. By Default HPC specifies architecture="X64" internally in the Broker's configuration file.</p> <pre><code>&lt;microsoft.Hpc.Session.ServiceRegistration&gt; &lt;service assembly="C:\ServicesR2\OfficeService.dll" contract="OfficeService.IOfficeService" type="OfficeService.OfficeService" includeExceptionDetailInFaults="true" maxConcurrentCalls="0" serviceInitializationTimeout="60000" enableMessageLevelPreemption="true" stdError="" maxMessageSize="65536" soaDiagTraceLevel="Off" architecture="X86" /&gt; &lt;/microsoft.Hpc.Session.ServiceRegistration&gt; </code></pre> <p>Ensure that you have a directory called "Desktop" at the following locations:</p> <p>C:\Windows\SysWOW64\config\systemprofile\ C:\Windows\System32\config\systemprofile\</p> <p>This is for all nodes in the cluster; if you are only running 32 bit windows you can ignore the SysWow64 directory location.</p> <p>Next you need to go and check the DCOM setup for Office Excel. To do this simply open a run dialogue and type:</p> <p>Dcomcnfg -32</p> <p>We add the -32 to open the 32 bit DCOM configuration as Office only supplies 32 bit COM+ objects to consume (well for 2010 and below, I cannot comment on 365/2013).</p> <p>Ensure that under Location "Run Application on this Computer" is checked.</p> <p>Ensure that under Security your account has full control for Launch and Activation Permissions, Access Permissions, and Configuration Permissions. If your user is an administrator account on this system you shouldn't need to make any changes as Admin's by default have these abilities.</p> <p>If the compute node running this task is a Windows Server 2008 R2 machine specify in the Identity tab - "The Launching User". If the compute node running this task is a windows Server 2012 machine, specify - "This User" and provide your credentials; or specify interactive user. I had very little luck with the latter so I suggest the former.</p> <p>Once you have taken care of these things your HPC Service should be properly executing the Application without seeing those Pesky failed COM+ errors.</p> <p>Also, you will need to be extra sure that you cleanup the Application upon Exit; I highly suggest you write a small routine as a finally for your WCF Service that kills the excel process when you are done; I discovered that while utilizing Excel under HPC the usual methods of terminating the application just plain we not reliable.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload