IIS cannot locate the Enterprise Architect Addin

2

I have a Web Application written in C# that uses allows the user to create diagrams and export them to Enterprise Architect. The plugin is also written in C# and built with the option Register for COM Interop. When I debug the application using Visual Studio 2015, it works without problem, but when I try to deploy it using IIS, it doesn't work. I tried to register manually the MyAddin.dll using

c:\windows\...\4.0.30319\regasm c:\inetpub\wwwroot\myApp\bin\MyAddin.dll /codebase

and then added it to the registry, using the key

HKLM\Software\Wow6432Node\Sparx Systems\EAAddins\MyAddin

but I still get an error. The Error is the following:

"Error while executing transaction. Actions have been rolled back."
Exception"System.Runtime.InteropServices.COMException (0x80080005): Die COM-Klassenfactory für die Komponente mit CLSID
{67F4E0FA-46A7-4255-B084-69A9433D08C3}
konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80080005 Server execution failed (Ausnahme von HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
bei System.Activator.CreateInstance(Type type, Boolean nonPublic)
bei System.Activator.CreateInstance(Type type)
bei NAF.Util.EaUtil.load_ea_repository(String eapFilePath)
bei EABridge.CapabilityImporter.Import(Int32 projectId, String eaTemplatePath)
bei EAsyNAF.WebApp.Controllers.HomeController.<>c_DisplayClass15_0.<CreateProject>b_0(ITransaction transaction)
bei EAsyNAF.WebApp.Utils.TransactionUtils.ExecuteTransaction(Action`1 action, IDataServiceManager dataService, ILogger logger, Action customRollback)"

I'm using Windows 7 Enterprise and IIS 6.1 SP1

Does someone have an idea what that could be?

iis-6
enterprise-architect
asked on Stack Overflow Aug 11, 2017 by adelinerd

2 Answers

1

EA needs a logged in user to use the API. When you run it in IIS you access EA as service. That simply does not work.

I vaguely remember some project (was it on SourceForge?) which a couple of years has been started to deal with that. But that is stalled.

The guys at LieberLieber have something in that direction: https://www.lieberlieber.com/en/web-collaborator-for-enterprise-architect/

See also http://www.sparxsystems.com/forums/smf/index.php/topic,30960.msg224599.html#msg224599

answered on Stack Overflow Aug 11, 2017 by qwerty_so • edited Aug 11, 2017 by qwerty_so
0

We managed to get it running, by using a tool called FireDaemon. We have read that there is an issue with the so called "Session 0". This app allows us to run as service in this session. I tried other tools, like http://nssm.cc/, but it didn't work in our case. We created a WCF service for the EA Add-in and this service is now started via FireDaemon. We are still trying to find another solution, but at least we got our application running.

answered on Stack Overflow Sep 4, 2017 by adelinerd

User contributions licensed under CC BY-SA 3.0