none
[E2010][TA][C#] Installing a transport agent with reference to a 3rd party dll RRS feed

  • Question

  • Hello.

     

    I am trying to create and install a custom transport agent.

    So, for a better view of the problem, let's assume we have the following structure of the projects:

     

    A 3rd party dll that manages certain parts of the logic

    A business logic project that refers to the 3rd party dll

    The transport agent project that refers to the business logic project

     

    What i would like to find out is how to install the agent with the current structure

    After some research i found out that an agent is installed like:

    Install-TransportAgent -Name <"TransportAgentID"> -TransportAgentFactory <"TransportAgentFactory"> -AssemblyPath <"FilePath">

    Source: http://technet.microsoft.com/en-us/library/bb125175.aspx

     

    What i am unable to find is how to specify to the install command that there other dlls that i want to be copied with the transport agent

     

    Wednesday, July 20, 2011 8:33 AM

Answers

  • As a starter everything your working with in a Transport Agent needs to be compiled as 64 bit so your business project (which should be another class library?) and any of its requirements 3rd party dll  need all to be 64 bit (if not you need to get 64 bit versions). All the Install-TransportAgent script does in register the Transport Agent class library so the Transport Service will then try to load this in the edgetransport.exe host it doesn't copy the DLL anywhere and when the Transport Service is restarted it will then lock the DLL so you will no longer be able to make changes to it without first stopping the Exchange Transport Service (One of the joys of Transport Agent Development this is why a development server is a must for this). Any other prerequisite DLL's depending on how you have referenced and loaded these assemblies in your project should just be in the same directory as your Transport Agent class library. The thing to remember here is the Transport Service runs under the Network Service credentials so its important that wherever you have your dll located that this account has access to those directories.

    Cheers
    Glen

    Thursday, July 21, 2011 4:23 AM

All replies

  • As a starter everything your working with in a Transport Agent needs to be compiled as 64 bit so your business project (which should be another class library?) and any of its requirements 3rd party dll  need all to be 64 bit (if not you need to get 64 bit versions). All the Install-TransportAgent script does in register the Transport Agent class library so the Transport Service will then try to load this in the edgetransport.exe host it doesn't copy the DLL anywhere and when the Transport Service is restarted it will then lock the DLL so you will no longer be able to make changes to it without first stopping the Exchange Transport Service (One of the joys of Transport Agent Development this is why a development server is a must for this). Any other prerequisite DLL's depending on how you have referenced and loaded these assemblies in your project should just be in the same directory as your Transport Agent class library. The thing to remember here is the Transport Service runs under the Network Service credentials so its important that wherever you have your dll located that this account has access to those directories.

    Cheers
    Glen

    Thursday, July 21, 2011 4:23 AM
  • Cheers Glen

     

    You've been of great help.

     

    Thanks

     

    Florin

    Thursday, July 21, 2011 6:34 AM