Hello All,
We have a transport agent that was originally written to run on an Exchange 2007 server, and was built with .NET 3.5. (The agent itself relies on two additional .NET 3.5 DLL's for logging functions) The agent looks for messages with a token in
the subject, and then will copy the new message text to an external DB.
We're in the process of migrating to Exchange 2016. Fortunately we have the source code for the agent.
First we migrated to an Exchange 2013 system, and we were able to get our TA working by rebuilding it with .NET 4.52, and referencing the E2013 versions of Microsoft.Exchange.Data.Common.dll and Microgosft.Exchange.Data.Transport.dll. We have not
been able to get the logging to file functions working, however, which is handled by the two other DLL's that we don't have the sources for. But the TA itself was processing messages just fine.
Now we're moving over to Exchange 2016, and we haven't been able to get our TA working at all with it. There are two events in the Application Log when the Transport service appears to load our TA:
Failed to create agent factory for the agent 'MyAgentTransportAgent' with error 'Failed to create type 'MyAgent.MyAgentAgentFactory' from assembly 'C:\MyAgent\MyAgent.dll' due to error 'Invalid agent assembly path.'.'. Please verify the corresponding transport
agent assembly and dependencies with correct version are installed.
…
Microsoft Exchange couldn't start transport agents. The Microsoft Exchange Transport service will be stopped. Exception details: Failed to create type 'MyAgent.MyAgentAgentFactory' from assembly 'C:\MyAgent\MyAgent.dll' due to error 'Invalid agent assembly
path.'. : Microsoft.Exchange.Data.ExchangeConfigurationException: Failed to create type 'MyAgent.MyAgentFactory' from assembly 'C:\MyAgent\MyAgent.dll' due to error 'Invalid agent assembly path.'. ---> System.ArgumentException: Invalid agent assembly path.
--- End of inner exception stack trace ---
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.FactoryTable.CreateAgentFactory(AgentInfo agentInfo)
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.FactoryTable..ctor(IEnumerable agents, FactoryInitializer factoryInitializer)
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.RuntimeSettings..ctor(MExConfiguration config, String agentGroup, FactoryInitializer factoryInitializer)
at Microsoft.Exchange.Data.Transport.Internal.MExRuntime.MExRuntime.Initialize(String configFile, String agentGroup, ProcessTransportRole processTransportRole, String installPath, FactoryInitializer factoryInitializer)
at Microsoft.Exchange.Transport.Categorizer.MExEvents.Initialize(String configFilePath)
at Microsoft.Exchange.Transport.Components.CategorizerMExRuntimeLoader.Load()
I've verified that we are referencing the Exchange 2016 versions of Microsoft.Exchange.Data.Common.dll and Microgosft.Exchange.Data.Transport.dll, but, just can't get the agent to load without the transport service stopping. Does anyone have any ideas
on the culprit with this?
Thank You
Maurice