websitepanel/WebsitePanel
robvde 697e7f23c8 Exchange 2010 SP2 Routing agent:
A) to route platform internal traffic of the
platform
B) To ensure internal OOF are not delivered to other platform tenants


The WSP Exchange SP2 Transport Agent is responsible for the following:
A) Determine that an email is being sent between tenants on the same system,
and re-routes the mail to deliver to a smart host elsewhere in the network, for
 subsequent routing back to Exchange.
B) Since Exchange Server 2007, a user has been able to set both an internal and
 an external OOF, and have Exchange deliver the OOF based on the sender being
 inside or outside the same Exchange Organization. In a multi-tenant
 configuration of Exchange such as that described in this document, all users
 in all tenants are considered internal to each other, and so the Internal OOF
 is sent between them if emails are exchange and OOF is set on a mailbox.
 The transport agent will prohibit to exchange internal OOF between different tenants
The transport agent will override the recipient destination for inter tenant
email exchange to an alternative domain. The platform will have a send
connector defined pointing assigned to the alternative domain name space and
pointing to the next hop, a smart hosts (This can be a Windows SMTP Service).
The smarthost will have a smarthost defined as well that will route back
the message to the platform.
Perform the following steps:
A)	Copy the files WSPTransportAgent.dll and WSPTransportAgent.dll.config
to “C:\Program Files\Microsoft\Exchange Server\V14\Public”
B)	Import the WSPTransportAgent.reg to create the event source
C)	Use the registry editor and provide the” NETWORK SERVICE” Full Control
on the following Key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\WSPTransportAgent
D	Run the following powershell command in the exchange management shell:
	Install-TransportAgent “WSPTransportAgent” –TransportAgentFactory
        WSPTransportAgent.MEACPRoutingAgentFactory
        –AssemblyPath
 “C:\Program Files\Microsoft\Exchange Server\V14\Public\WSPTransportAgent.dll”
D)	Enable-TransportAgent “WSPTransportAgent”
E)	Restart the Microsoft Exchange Transport Service
The configuration file contains the following configurable items:
Key	Value
A) routingDomain	This is the alternative domain that will be added to
the recipient domain name. This should be aligned with the namespace for the
send connector. A sample value could be “.tmp”. The send connector will in
that case serve the  *.tmp namespace
logFile	Full qualified path to log file that will be used when verbose logging
is enabled (e.g. c:\temp\WSP.log)
enableVerboseLogging	Possible values: true or false. Enables or disables
verbose logging. This should be disabled by default
blockInternalInterTenantOOF	Possible values: true or false.
Enabled the internal auto reply between tenants. Auto replies within the
tenant or with external tenants (not hosted on the platform) will receive the
internal or external auto reply message.

See http://www.microsoft.com/en-us/download/details.aspx?id=28192
2012-07-10 12:17:19 +04:00
..
Database Lync Server 2010 Multitenant Core Unified Communications Support Added 2012-07-10 11:19:55 +04:00
Lib Exchange 2010 SP2 Routing agent: 2012-07-10 12:17:19 +04:00
Resources Microsoft SQL Server 2012 support 2012-05-12 14:17:46 -04:00
Sources Exchange 2010 SP2 Routing agent: 2012-07-10 12:17:19 +04:00
Tools Initial project's source code check-in. 2011-07-13 16:07:32 -07:00
build-debug.bat SSL CSR generation fix 2011-11-21 10:32:47 -08:00
build-release.bat SSL CSR generation fix 2011-11-21 10:32:47 -08:00
build.xml Various changes to prepare Installers for 1.2.2 2012-05-15 20:01:08 -04:00
deploy-debug.bat Changed verbosity in deploy batch files. 2011-11-21 18:59:56 -08:00
deploy-release.bat Changed verbosity in deploy batch files. 2011-11-21 18:59:56 -08:00
Readme.htm Initial project's source code check-in. 2011-07-13 16:07:32 -07:00
ReleaseNotes.htm Items being checked-in: 2011-07-14 17:10:11 -07:00

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>WebsitePanel - Readme</title>
    <style type="text/css">
        .style1 {
            text-decoration: underline;
        }
    </style>
</head>
<body>
 
    <h1>
        WebsitePanel - Readme</h1>
    <p>
        WebsitePanel is a hosting control panel for Windows servers.</p>
 
    <h2>
        License</h2>
    <p>
        WebsitePanel is released under BSD license. Please see LICENSE.txt file in the 
        root folder of this project.</p>
 
    <h2>
        Project Structure</h2>
    <p>
        The project has the following folders structure:</p>
    <ul>
        <li><strong>\Trunk</strong> - project version currently in development<ul>
            <li><strong>\Sources</strong> - project source codes.</li>
            <li><strong>\Lib</strong> - all referenced 3rd-party assemblies required to build 
                the solution are placed in this folder.</li>
            <li><strong>\Database</strong> - the folder contains SQL scripts for creating 
                initial database structure and its update to the current version.<ul>
                    <li><strong>install_db.sql</strong> - SQL script to create full database structure 
                        for the <em>previous</em> release.</li>
                    <li><strong>update_db.sql</strong> - SQL script to update database structure for the 
                        revious release to the current one.</li>
                </ul>
            </li>
            <li><strong>\Docs</strong> - project documentation<ul>
                <li><strong>\Developer</strong> - technical documentation (specs, diagrams, POCs, 
                    etc.) for developers working on the project</li>
                <li><strong>\User</strong> - user-related documentation (user guides, how-tows, 
                    etc.) for end-users using the product</li>
                </ul>
            </li>
            <li><strong>\Build</strong> - folder containing solution assemblies that 
                are referenced from other projects</li>
            </ul>
        </li>
        <li><strong>\Releases</strong> - contains all project releases</li>
        <li><strong>\Branches</strong> - contains project branches for proof-of-concepts, 
            new development, bug fixing, etc.</li>
        <li><strong>LICENSE.txt</strong> - project license</li>
        <li><strong>Readme.htm</strong> - the file you are reading right now</li>
        <li><strong>ReleaseNotes.htm</strong> - project release notes</li>
    </ul>
    <h2>
        Build How-To</h2>
    <h3>
        Downloading 3rd-Party Libraries</h3>
    <p class="style1">
        SimpleDNS API</p>
    <p>
        SDNSAPI.dll is required to build &quot;WebsitePanel.Providers.DNS.SimpleDNS50&quot; 
        project.</p>
    <p>
        Download &quot;Simple DNS Plus API for .NET and COM&quot; library from &quot;Downloads&quot; section 
        on <a href="http://www.simpledns.com">www.simpledns.com</a> web site web site (at the 
        time of writing direct link to this library is
        <a href="http://www.simpledns.com/outbox/sdnsapi-setup.exe">
        http://www.simpledns.com/outbox/sdnsapi-setup.exe</a>). Install the library and 
        then copy SDNSAPI.dll (located in &quot;C:\Program Files (x86)\Simple DNS Plus API 
        for .NET and COM&quot; by default) from its installation folder to &quot;Lib&quot; folder of 
        WebsitePanel project.</p>
    <p class="style1">
        MySQL .NET Connector</p>
    <p>
        MySQL .NET Connector is required to build 
        &quot;WebsitePanel.Providers.Database.MySql&quot; project.</p>
    <p>
        Go to <a href="http://www.mysql.com">www.mysql.com</a> web site and download the 
        latest release of &quot;MySQL .NET Connector&quot; library from there (at the time of 
        writing it is located at <a href="http://dev.mysql.com/downloads/connector/net/">
        http://dev.mysql.com/downloads/connector/net/</a>). Install MySQL connector and 
        then copy &quot;MySQL.Data.dll&quot; assembly from its installation folder to &quot;Lib&quot; folder 
        of WebsitePanel project.</p>
    <p class="style1">
        OrderBox (Directi API)</p>
    <p>
        Certain libraries are required to compile &quot;WebsitePanel.Plugins.Directi&quot; project 
        of Enterprise Server solution.</p>
    <p>
        Open <a href="http://40083.myorderbox.com/kb/servlet/KBServlet/faq589.html">
        http://40083.myorderbox.com/kb/servlet/KBServlet/faq589.html</a> page and 
        download the following files:</p>
    <ul>
        <li>NET_CoreExamples_vX.zip</li>
    
        <li>NET_DomainsExamples_vX.zip</li>
    </ul>
        <p>
            Unpack both archives to some temporary location and then copy the following 
            files to &quot;Lib&quot; folder of WebsitePanel project:</p>
    <ul>
        <li>OrderBoxCoreLib.dll</li>
        <li>OrderBoxDomainsLib.dll</li>
    </ul>
	
	<h3>Set the Reference Paths to 3rd-Party Libraries</h3>
	<p>After placing the required 3rd-Party Libraries into &quot;Lib&quot; folder 
	   of WebsitePanel project, open WebsitePanel.Server solution (WebsitePanel.Server.sln) 
	   and set ReferencePath of &quot;WebsitePanel.Providers.Database.MySQL&quot; and &quot;WebsitePanel.Providers.DNS.SimpleDNS50&quot; projects 
	   to the absolute path of the &quot;Lib&quot; folder. See &quot;Reference Path Is Incorrect&quot; paragraph of 
	   <a href="http://msdn.microsoft.com/en-us/library/ayds71se%28v=VS.100%29.aspx" target="_blank">Troubleshooting Broken References</a> 
	   article for help.<br />
	   Do the same for &quot;WebsitePanel.Plugins.Directi&quot; project of WebsitePanel.EnterpriseServer solution (WebsitePanel.EnterpriseServer.sln).</p>
	
    <h3>
                Building Solutions</h3>
    <p>
        Build WebsitePanel solutions in the following order:</p>
    <ul>
        <li>WebsitePanel.Server.sln</li>
        <li>WebsitePanel.EnterpriseServer.sln</li>
        <li>WebsitePanel.WebPortal.sln</li>
    </ul>
    <h3>
        Creating Database</h3>
    <p>
        In order to run WebsitePanel Enterprise Server it&#39;s required to create SQL 
        Server database to hold its internal data.</p>
    <ol>
        <li>Using SQL Server Management Studio or any other database tool create a database 
            called &quot;WebsitePanel&quot;.</li>
        <li>Execute &quot;install_db.sql&quot; script containing DDL and initial data from &quot;\Database&quot; 
            folder of WebsitePanel project against created database.</li>
        <li>Create &quot;WebsitePanel&quot; SQL user account and grant it &quot;db_owner&quot; rights on 
            &quot;WebsitePanel&quot; database.</li>
        <li>Open &quot;web.config&quot; file in the root of Enterprise Server application and update 
            CryptoKey (appSettings/add/WebsitePanel.CryptoKey element) value there. It might 
            be arbitrary non-empty string.</li>
        <li>Run WebsitePanel.PasswordEncoder tool available in &quot;Tools&quot; folder and generate 
            hash for &quot;serveradmin&quot; account password using CryptoKey and &quot;Encrypt&quot; button.</li>
        <li>Update &quot;Password&quot; column in &quot;Users&quot; database table with generated hash for the 
            record with UserID = 1 (&quot;serveradmin&quot; account).</li>
        <li>In Enterprise Server&#39;s web.config update database connection string with proper 
            settings in order to connect to WebsitePanel database.</li>
    </ol>
    <h3>
        Configuring Web Applications</h3>
    <p>
        It&#39;s assumed below that root of WebsitePanel project is pointing to &quot;C:\Projects\WebsitePanel&quot; 
        folder.</p>
    <ul>
        <li>Create &quot;WebsitePanel Server&quot; web site (with 127.0.0.1:9003 binding) using IIS Management Tool with the root 
            folder pointing to &quot;C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.Server&quot;.</li>
        <li>Create new user account called &quot;WebsitePanelServer&quot; and update process identity 
            with it for &quot;WebsitePanel Server&quot; application pool. This user account must have 
            required privileges to manage computer resources (by default be a member of 
            local &quot;Administrators&quot; group) and also must be a member of &quot;IIS_IUSRS&quot; (IIS 7).</li>
        <li>Create &quot;WebsitePanel Enterprise Server&quot; web site (with 127.0.0.1:9002 
            binding) using IIS Management Tool with 
            the root folder pointing to &quot;C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.EnterpriseServer&quot;.</li>
        <li>Create &quot;WebsitePanel Web Portal&quot; web site (with &lt;all unassigned&gt;:9001 
            binding) using IIS Management Tool with the 
            root folder pointing to &quot;C:\Projects\WebsitePanel\Trunk\Sources\WebsitePanel.WebPortal&quot;.</li>
        <li>Open &quot;App_Data\SiteSettings.config&quot; file in &quot;WebsitePanel.WebPortal&quot; folder and 
            update URL to Enterprise Server (http://127.0.0.1:9002 by default).</li>
        <li>Open web.config in the root of WebsitePanel.Server application and update 
            &quot;server access password&quot; (&quot;websitepanel.server/security/password&quot; element). You 
            should be able to generate password SHA1 hash using WebsitePanel.PasswordEncoder 
            tool.</li>
    </ul>
    
</body>
</html>