Blog posts by Shahid Nawaz2014-04-10T06:57:34.0000000Z/blogs/Shahid-Nawaz/Optimizely WorldLicense error: Current version is newer than required version/blogs/Shahid-Nawaz/Dates/2014/4/License-error-Current-version-is-newer-than-required-version/2014-04-10T06:57:34.0000000Z<p>In EPiServer 7.5 if you upgrade to latest update through <a href="http://nuget.episerver.com/" target="_blank">nuget</a> (<em>starting from update-6</em>) you might get a license error something like :</p> <p><font color="#ff0000">Current version 7.6.0.0 is newer than required version 7.5.9999</font></p> <p>Don’t worry, you don't need to "upgrade" your license as normally is the case when upgrading from EPiServer-5 to EPiServer-6 or 6 to 7. The reason for above error is probably your license file has max version set to : </p> <p><Restrictions> <br />        <Restriction> <br />          <VersionRestriction From="7.0" To="<font color="#ff0000">7.5.9999</font>" ….</p> <p>EPiServer 7 license works both for 7 & 7.5 release. </p> <p><strong>Solution:</strong></p> <p>Re-generate the license file from <a href="https://license.episerver.com/" target="_blank">license center</a> (<em>required admin access</em>). Login to license center, go under "Licenses" tab, open the license <br />and click "Send license file by email". When you re-send the license file, it will automatically update the maxversion of all grouped/bundled EPiServer 7 licenses as well. So you don’t need to re-regenerate each license file separately. </p> <p>If you don’t have License Admin access to license center then send a request to <strong>LicenseAdmin</strong> at <strong>episerver</strong> <strong>dot com</strong> to regenerate the license file for you. </p>EPiServer CMS 7.5 Cloud Developer License/blogs/Shahid-Nawaz/Dates/2014/1/EPiServer-CMS-75-Cloud-Developer-License/2014-01-31T07:25:05.0000000Z<p>I hope most of you have already observed a new license type added under EPiServer 7 when creating a developer license on <a href="https://license.episerver.com/" target="_blank">license center</a>. </p> <p><a href="/link/fbdc7aed7b164979a1b876de623d50fa.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="/link/ed6c00c454c44e4d971dbdbafe1616e6.png" width="483" height="218" /></a></p> <p> </p> <p>Well, this license type (<em>Cloud Developer License</em>) allows you to generate/download a developer license which is <strong>NOT</strong> tied to <strong>IP/MAC</strong>. You can use this license when deploying on amazon/azure and by default it allows you to scale up to10 sites and 3 instances. </p> <p><strong>How it works: </strong></p> <p>Just place the file on your instances and activate your site(s) in the backend. Once you install the license file on a instance (<em>and site in question is not activated yet</em>), you will see a warning message on the site like: </p> <p><a href="/link/90ae7ca3129f4173934f522c548ce07d.png"><img title="clip_image001" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image001" src="/link/9e0d284bd9d2406b9d8a185b6de87541.png" width="386" height="208" /></a></p> <p>As stated in the warning message that you have to activate the “site” from administrative menu. When you logon to edit UI, you’ll see another warning banner like :</p> <p><a href="/link/e2f2c9a437f24c85b4b2f6364eb87040.png"><img title="clip_image001[8]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image001[8]" src="/link/5ff17bc20d8240178369dd56aacfbf23.png" width="1291" height="47" /></a></p> <p>In admin mode under <strong>config</strong>-><strong>Manage Web sites</strong>, you will see a new tab visible called “<strong>Cloud License</strong>”. Here you can activate/deactivate all the sites on the fly.</p> <p><a href="/link/b7e1a03f0863406eacc60af678070970.png"><img title="clip_image001[10]" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image001[10]" src="/link/5457b739f0d041a49079d220be3881be.png" width="529" height="177" /></a></p> <p> </p> <p>The license system will regularly validate that you do not exceed the total number of sites/instances using this cloud license. You can read more about deploying on Amazon and Azure here:</p> <p><a title="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Amazon/" href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Amazon/">http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Amazon/</a></p> <p><a title="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Azure-websites/" href="http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Azure-websites/">http://world.episerver.com/Documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Azure-websites/</a></p> <p> </p> <p><strong>Note</strong>: EPiServer Commercial Cloud for Amazon and Azure is currently in beta release for version 7.5 and up. Cloud developer license ONLY supports EPiServer <strong>CMS</strong> 7.5 for now. </p>Updated General Hotfix CMS-6 R2/blogs/Shahid-Nawaz/Dates/2012/1/General-Hotfix-CMS-6-R2/2012-04-10T13:00:00.0000000Z<p><strong>Update1:</strong><em><br /> </em>A new version of <a href="http://world.episerver.com/Download/Categories/Products/EPiServer-Relate/" target="_blank">EPiServer Relate2 R2</a> has been uploaded under download section on episerver world after some bug fixes. This version is also compatible with General Hotfix for CMS-6 R2 (6.1.379.501). Follow these <a href="/link/a3634cdeec2d4cdc9e4b47b28205d947.txt" target="_blank">installation instructions</a> if you want to patch an existing Relate2R2 installation. </p>
<p> </p>
<p><strong>Update:</strong></p>
<p><strong> </strong>A new version of EPiServer CMS-6 R2 has been uploaded under download section, which addresses the bug (#76625:<em>Update schema in General hotfix doesn't included when upgrading</em>) along with some other bug fixes. See the updated<a href="/link/e4eb1d1bdd5e46de91823bf28ebaaee1.txt" target="_blank"> list of fixed bugs here</a>. <br />Newly uploaded installation package has following assembly info:</p>
<p><strong>File Version:</strong> 6.1.379.501</p>
<p><strong>Assembly Version:</strong> 6.1.379.0</p>
<p> </p>
<p>We at EPiServer developer support have been getting requests from our partner developers for hotfix(s) of different bugs which appeared in cms-6R2. So far, we have provided different hotfixes to different partners for their issues.</p>
<p>Now to ease the developer’s life, we have created a general hotfix for CMS-6R2 which addresses the most common bugs in CMS-6R2 and for those we have already provided hotfix(s) to different partners.</p>
<p>Download the latest version of EPiServer CMS 6 R2 from <a title="CMS-6R2" href="http://world.episerver.com/Download/Categories/Products/EPiServer-CMS/" target="_blank">here</a>.</p>
<p><strong>Note1</strong>: Security vulnerability issue which Jens Nygård <a href="http://world.episerver.com/Blogs/Jens-N/Dates/2012/1/Security-vulnerability---Elevation-of-privilege/" target="_blank">blogged </a>about is also included in this general hotfix.</p>
<p><strong>Note2</strong>: Partners who want a patch into existing CMS 6R2 installation should follow these<a href="/link/ddacb3a9a0944938bc7777592c783414.txt" target="_blank"> installation instructions</a>. Apply the database changes by running <a href="/link/47a0c2378a8e464ba9e72f69356cb574.sql" target="_blank">this script</a> on an existing 6R2 database.</p>Load Balancing License Issues when upgrading to CMS-6/blogs/Shahid-Nawaz/Dates/2010/12/Load-Balancing-License-Issues-when-upgrading-to-CMS-6/2010-12-13T10:20:00.0000000Z<p>Every now and then we are being asked different license issues after upgrading to CMS-6 enterprise and load balancing. As I wrote in my previous post about the working of <a href="http://world.episerver.com/Blogs/Shahid-Nawaz/Dates/2010/10/New-license-model-in-EPiServer-CMS/">new license model</a> in CMS-5 & 6 but it seems that there are some confusion still out there.</p>
<p>Let's take couple of them with examples. :)</p>
<p>"<strong>This slave site has no master license information</strong>" <br />or <br />"<strong>This slave site failed when validating master license information</strong>". <br />If you come across one of the above errors than first thing you need to do is to follow the <a href="http://world.episerver.com/faq/Items/License-error-in-load-balanced-environment/">FAQ</a>. If the error remains than make sure that you have right <a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2009/11/News-regarding-License-and-Site-handling-in-CMS6/">licenses uploaded</a> through admin mode. Open up your master license from master site and slave license from slave site. Check the MetaData in both configs as below: </p>
<p><strong>Master License.config:</strong></p>
<div class="csharpcode"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">LicenseNumber</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">></span></span><span style="color: #008000; font-size: x-small;">1234756</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">LicenseNumber</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">><br /></span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Enterprise</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">></span></span><span style="font-size: x-small;">True</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Enterprise</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">><br /><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Master</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">></span></span><span style="font-size: x-small;">True</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Master</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">> </span></span></div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Slave License.config</strong>:</p>
<div class="csharpcode"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">LicenseNumber</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">><span style="color: #000000;">789102</span></span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">LicenseNumber</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">><br /></span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Enterprise</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">></span></span><span style="font-size: x-small;">True</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">Enterprise</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">><br /><</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">SlaveTo</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">></span></span><span style="color: #008000; font-size: x-small;">1234756</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"></</span></span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">SlaveTo</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">> </span></span></div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p>Make sure that <strong>SlaveTo</strong> points to correct master license ID. Also make sure that the account which you used to connect to database(s) has "<strong>DBOwner</strong>" access.</p>
<p>If you have upgraded your license from CMS-5 Old enterprise and have received multiple config files than there are chances that you have uploaded incorrect license in your site(s).</p>
<p>If you require to change master license bindings in any of your existing license then send a request to license admin or "sales at episerver dot com" and supply correct license numbers.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>"License violation - license in use at another site</strong>" <br />wait a sec ... yes yes we do have couple of FAQs (<a href="http://world.episerver.com/FAQ/Items/License-violation-License-is-already-in-use-at-another-online-site/">one</a> & <a href="http://world.episerver.com/FAQ/Items/License-violation-after-removing-a-second-site/">two</a>) available already but when it comes to CMS-6, you need to make sure that you have uploaded a new license file for every additional enterprise site since one license only supports one site to run with. </p>Setting up Mirroring 2.0 in two ways/blogs/Shahid-Nawaz/Dates/2010/10/Setting-up-Mirroring-20-in-two-ways/2010-10-18T10:01:00.0000000Z<p>Since the launch of <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Mirroring/" target="_blank">Mirroring 2.0</a>, life has been made easy for EPiServer developers (<em>Thanks to dev team</em>). In this blog post I’ll try to share my experience when setting up mirroring between two sites. Since the mirroring service act as a separate application having its own appPool, you can also <a href="http://world.episerver.com/Blogs/Shahram-Shahinzadeh/Dates/2010/4/Mirroring-and-Monitoring-Configurations/">configure it</a> in way so that more than one site(s) can use it as source/destination mirroring service. I’ll try to write configuration settings for two scenarios, one with using single mirroring service (<em>installed only on source site</em>) and second with using mirroring service installed both on source and destination sites.</p>
<p><strong>1- </strong><strong>Using Single Mirroring Service only on Source site</strong>:</p>
<p>Mirroring Service web.config which is installed on source site:</p>
<div class="csharpcode">
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">configuration</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code>…</code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">clear</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="EPiServerDB1"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=SOURCE-PC\SQLEXPRESS;Initial Catalog=db5Up6;Integrated Security=False;User ID=dbUser5Up6;Password=asdfsa_ssdf98;"</span> <span class="attr">providerName</span><span class="kwrd">="System.Data.SqlClient"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"></</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="EPiServerDB2"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=Tareget-PC\SQLEXPRESS;Initial Catalog=dbmirrorcms6;Integrated Security=False;User ID=dbUsermirrorcms6;Password=CMS@123;Connect Timeout=10"</span> <span class="attr">providerName</span><span class="kwrd">="System.Data.SqlClient"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code>…</code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">episerverMirroring</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">mirroringTransfer</span> <span class="attr">defaultProvider</span><span class="kwrd">="MirroringTransferServer"</span><span class="kwrd">></span> <span class="kwrd"><</span><span class="html">providers</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">add</span> <span class="attr">destinationConnectionStringName</span><span class="kwrd">="EPiServerDB2"</span> <span class="attr">defaultEndpointName</span><span class="kwrd">="mirroringTargetEndPoint"</span> <span class="attr">chunkSize</span><span class="kwrd">="4194304"</span> <span class="attr">name</span><span class="kwrd">="MirroringTransferServer"</span> <span class="attr">type</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.WCF.MirroringTransferClient,EPiServer.Enterprise"</span> <span class="attr">username</span><span class="kwrd">="epi"</span> <span class="attr">password</span><span class="kwrd">="episerver"</span> <span class="attr">domain</span><span class="kwrd">=""</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">providers</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">mirroringTransfer</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringSourceService.MirroringSourceServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17000/MirroringSourceServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">name</span><span class="kwrd">="mirroringSourceEndpoint"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringSourceService.IMirroringSource"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.MirroringTranferServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17000/MirroringTransferServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MirroringBinding"</span> <span class="attr">name</span><span class="kwrd">="mirroringTransferEndpoint"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.Common.IMirroringDataTransfer"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringMonitoringService.MirroringMonitoringServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17000/MirroringMonitoringServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="wsDualHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MonitoringMirroringBinding"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringMonitoring.IMirroringMonitoringEventSystem"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="mex"</span> <span class="attr">binding</span><span class="kwrd">="mexHttpBinding"</span> <span class="attr">contract</span><span class="kwrd">="IMetadataExchange"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"></</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">client</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17000/MirroringTransferServer.svc"</span> <span class="attr">name</span><span class="kwrd">="mirroringTargetEndPoint"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MirroringBinding"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.Common.IMirroringDataTransfer"</span> <span class="kwrd">/></span></code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Source Site Web. Config changes:</strong></p>
<div class="csharpcode">
<pre class="language-csharp"><code><system.serviceModel></code></pre>
<pre class="language-csharp"><code> <client></code></pre>
<pre class="language-csharp"><code><endpoint name=<span class="str">"mirroringSourceEndpoint"</span> address=<span class="str">"http://Source-pc:17000/MirroringSourceServer.svc"</span> binding=<span class="str">"basicHttpBinding"</span> contract=<span class="str">"EPiServer.MirroringService.MirroringSourceService.IMirroringSource"</span> /></code></pre>
<pre class="language-csharp"><code> <endpoint name=<span class="str">"mirroringMonitoringEndPoint"</span> address=<span class="str">"http://source-pc:17000/MirroringMonitoringServer.svc"</span> bindingConfiguration=<span class="str">"MonitoringMirroringBinding"</span> binding=<span class="str">"wsDualHttpBinding"</span> contract="EPiServer.MirroringService.MirroringMonitoring</code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><span style="font-family: Consolas; font-size: x-small;"> </span></p>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Note</strong>: Enable the <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Event-Management-System-Specification/">remote events</a> as well based on your requirement either namedNet-Pipe or TCP/IP so that mirroring service can update the cache on target server.</p>
<p> </p>
<p><strong>2- </strong><strong>When mirroring Service installed on both sites (<em>Source & Destination</em>). </strong></p>
<p><strong>Source Mirroring Service Web.Config: <br /></strong></p>
<div class="csharpcode">
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">clear</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="EPiServerDB"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=Source-PC\SQLEXPRESS;Initial Catalog=db5Up6;Integrated Security=False;User ID=dbUser5Up6;Password=asdfsa_ssdf98;"</span> <span class="attr">providerName</span><span class="kwrd">="System.Data.SqlClient"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringSourceService.MirroringSourceServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://Source-pc:17001/MirroringSourceServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">name</span><span class="kwrd">="mirroringSourceEndpoint"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringSourceService.IMirroringSource"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="rem"><!--no need of TragetMirroringServer here since we’have already installed Mirroring Service on Target site--></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringMonitoringService.MirroringMonitoringServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://Source-pc:17001/MirroringMonitoringServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="wsDualHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MonitoringMirroringBinding"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringMonitoring.IMirroringMonitoringEventSystem"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="mex"</span> <span class="attr">binding</span><span class="kwrd">="mexHttpBinding"</span> <span class="attr">contract</span><span class="kwrd">="IMetadataExchange"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"></</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">client</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span>endpoint address="http://Target-pc:17006/MirroringTransferServer.svc" name="mirroringTargetEndPoint" binding="basicHttpBinding" bindingConfiguration="MirroringBinding" contract="EPiServer.MirroringService.MirroringTransferProtocol</code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Source Site Web.Config: <br /></strong></p>
<div class="csharpcode">
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">client</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">name</span><span class="kwrd">="mirroringSourceEndpoint"</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17001/MirroringSourceServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringSourceService.IMirroringSource"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">name</span><span class="kwrd">="mirroringMonitoringEndPoint"</span> <span class="attr">address</span><span class="kwrd">="http://source-pc:17001/MirroringMonitoringServer.svc"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MonitoringMirroringBinding"</span> <span class="attr">binding</span><span class="kwrd">="wsDualHttpBinding"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringMonitoring.IMirroringMonitoringEventSystem"</span> <span class="kwrd">/></span></code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Target Mirroring Service Web.config:</strong></p>
<p> </p>
<div class="csharpcode">
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">clear</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="EPiServerDB"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=Target-PC\SQLEXPRESS;Initial Catalog=dbtestsite;Integrated Security=False;User ID=dbUsertestsite;Password=asdf@954;"</span> <span class="attr">providerName</span><span class="kwrd">="System.Data.SqlClient"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"></</span><span class="html">connectionStrings</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="rem"><!--No need to have MirroringSourceServer and MirroringMonitoringServer available here since we are using both from Source Mirroing Service.--></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="MirroringServiceBehavior"</span> <span class="attr">name</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.MirroringTranferServer"</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="http://Target-PC:17006/MirroringTransferServer.svc"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="MirroringBinding"</span> <span class="attr">name</span><span class="kwrd">="mirroringTransferEndpoint"</span> <span class="attr">contract</span><span class="kwrd">="EPiServer.MirroringService.MirroringTransferProtocol.Common.IMirroringDataTransfer"</span> <span class="kwrd">/></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"></</span><span class="html">services</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><</span><span class="html">client</span><span class="kwrd">></span></code></pre>
<pre class="language-csharp"><code> <span class="kwrd"><!</span>—no need to set MirroingTargetEndpoint here since we’ve already defined it in source mirroring service--<span class="kwrd">></span></code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p><strong>Note</strong>: Enable the <a href="http://world.episerver.com/Documentation/Items/Tech-Notes/EPiServer-CMS-6/EPiServer-CMS-60/Event-Management-System-Specification/">remote events</a> as well based on your requirement either UDP or TCP/IP so that mirroring service can update the cache on target server.</p>
<p> </p>
<p><strong>Troubleshooting Mirroring Service:</strong></p>
<p>You can enable regular EPiServer logging by placing <strong>EPiServerLog.Config</strong> to Mirroring Service root folder. Second option which I really like is to enable <strong>offLineLogging</strong> in mirroring service web. config as below:</p>
<div class="csharpcode">
<pre class="language-csharp"><code><span class="kwrd"><</span><span class="html">mirroringMonitoring</span> <span class="attr">offlineLoggingEnabled</span><span class="kwrd">="true"</span> <span class="attr">offlineLogPath</span><span class="kwrd">="C:\EPiServer\MyMirroringMonitoringData"</span> <span class="kwrd">/></span></code></pre>
</div>
<!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } -->
<p>Note1: Installing mirroring service 2.0 as virtual directory is not a supported solution.</p>
<p>Note2: Copy all needed (<em>if you added custom property, module, plugin which will be part of mirroring</em>) assemblies to Mirroring service bin folder otherwise you may get errors like "<strong>Value cannot be null</strong>"<br /><strong>Parameter name: type () </strong></p>New license model in EPiServer CMS/blogs/Shahid-Nawaz/Dates/2010/10/New-license-model-in-EPiServer-CMS/2010-10-15T16:08:00.0000000Z<p>Since the release of new license model (<em>earlier this year</em>) a lot has already been written in the form <a href="http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2009/11/News-regarding-License-and-Site-handling-in-CMS6/">blog</a>(s), <a href="http://world.episerver.com/Articles/Items/Enterprise-Functionality-in-EPiServer-CMS-6/#multisite">article</a>(s) etc but still we are getting questions regarding it and seems that our developers are still struggling with it.</p>
<p>First thing, in new license model, multisite limit has been taken away from the license file which means that if you are using CMS-6, you can only run one license with one site (<em>enterprise</em>). If you want to extend your solution by adding another site to your enterprise solution then you need to have another license file for that site. However there are couples of scenarios (<strong><em>Multiple Enterprise Sites with & without common code base</em></strong>) which are already described in this <a href="http://world.episerver.com/Get-Started/Complex-EPiServer-CMS-Projects/Licensing/">article</a>.</p>
<p>2ndly, even in partner developer licenses there is no multisite limit anymore meaning that you have to install a new license file for every new site in your development environment. We encourage our developers to use new license model especially when using CMS-6 and above. Since partner developer licenses are for free to our partners and you can get the license file within couple of minutes so add a separate license file for every site in your project.</p>
<p>However if you still think that it’s a bit hectic (<em>which isn’t I would say</em> :)) to add more license files to your development environment than add a comment with your requirements while placing <a href="http://license.episerver.com/">order</a> for developer license or send request to <a href="mailto:sales@episerver.com">sales at episerver dot com</a>.</p>