tag:blogger.com,1999:blog-39984176759399031592024-03-28T00:21:50.678-07:00Olly's BlogsOlof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-3998417675939903159.post-14549022700612616382020-05-05T19:48:00.002-07:002020-05-05T19:48:38.245-07:00Hangfire Dashboard Authentication and Authorization with .Net Framework and OWINUsed the following the link as a guide<br /><div><a href="https://docs.hangfire.io/en/latest/configuration/using-dashboard.html#configuring-authorization">https://docs.hangfire.io/en/latest/configuration/using-dashboard.html#configuring-authorization</a></div><div><br />
To run the sample solution. Everything is self-contained.<br />
1. Unzip<br />
2. Open solution<br />
3. Clean Solution (Roslyn compiler issue)<br />
4. run<br />
<br />
<b><font size="6">Sample Solution Setup</font></b><br />
Created a new project ASP.NET Web Application (.NET Framework)<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ITwAZYL3yfqmlFG3jzSSK1YEq8BZaA_itv1JXM3rFEF7JEaljNAMaZsVlGRstXAMcpeRZ53nnmCYdtQuCn2Vi4-txpag2ErzXwZZ6MyMAO3YojSmgsgYZHD2qOROv6cClyCuZW7CX7M/s1600/image001.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="654" data-original-width="986" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ITwAZYL3yfqmlFG3jzSSK1YEq8BZaA_itv1JXM3rFEF7JEaljNAMaZsVlGRstXAMcpeRZ53nnmCYdtQuCn2Vi4-txpag2ErzXwZZ6MyMAO3YojSmgsgYZHD2qOROv6cClyCuZW7CX7M/s1600/image001.png" /></a></div>
<br />
Enter the name of the project<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgqpHx0MARwoPEsvsv1k_4FOYWRK5w8qge7gIcSomT0PQHIk4EQtI0YlbLP9aM7cAXE0np95Z_u58jOSJBDfj4K9f0gj4aVTLYeja1dJF-1ZiOV3iLJLzZA-srs9RxhimmCBJJdbk7AEY/s1600/image003.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="641" data-original-width="986" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgqpHx0MARwoPEsvsv1k_4FOYWRK5w8qge7gIcSomT0PQHIk4EQtI0YlbLP9aM7cAXE0np95Z_u58jOSJBDfj4K9f0gj4aVTLYeja1dJF-1ZiOV3iLJLzZA-srs9RxhimmCBJJdbk7AEY/s1600/image003.png" /></a></div>
<br />
Choose Single Page Application<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoHRjk3TzCxZb-xBR9ot5BOFQLdTX9nyJ8spD9Rcrp8cLNxa0NYMkjDIZyeu119liW-6emtH17pAuwAZqMn4_leU3qOQANUv1_P-vcB8ROl56xGM1moIRvGeGGZrTMRqHWgyFwU_P0las/s1600/image005.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="682" data-original-width="1008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoHRjk3TzCxZb-xBR9ot5BOFQLdTX9nyJ8spD9Rcrp8cLNxa0NYMkjDIZyeu119liW-6emtH17pAuwAZqMn4_leU3qOQANUv1_P-vcB8ROl56xGM1moIRvGeGGZrTMRqHWgyFwU_P0las/s1600/image005.png" /></a></div>
<br />
Install NuGet package Hangfire<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_-7PunCALNxS-Nz4MlYxf8rAyj8gpArQYcnl3kDxjleUjP5UixVSSu542skbF1DcGHeWT5jVNQaYk4c-4zisYkNhxrRudDfVCg7V7gMg-JUrlhJhVoe8xa9DFPx67FsTDksiMwVfHPp4/s1600/image007.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="331" data-original-width="1136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_-7PunCALNxS-Nz4MlYxf8rAyj8gpArQYcnl3kDxjleUjP5UixVSSu542skbF1DcGHeWT5jVNQaYk4c-4zisYkNhxrRudDfVCg7V7gMg-JUrlhJhVoe8xa9DFPx67FsTDksiMwVfHPp4/s1600/image007.png" /></a></div>
<br />
Add local database under App_Data<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioro_a9S1kM7McUiQT_S0uA4CDZ4hpnGwK89JMrLj7QA7r4jVoyXtjVHCf-BQdGRy1clxsqAPnUwUfXHha9IYIcz0_n2HHJrDwXokavZgh0N3xPzNHQ1BFakRwcVuUXFT5Fdy2okzmNwQ/s1600/image009.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="219" data-original-width="429" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioro_a9S1kM7McUiQT_S0uA4CDZ4hpnGwK89JMrLj7QA7r4jVoyXtjVHCf-BQdGRy1clxsqAPnUwUfXHha9IYIcz0_n2HHJrDwXokavZgh0N3xPzNHQ1BFakRwcVuUXFT5Fdy2okzmNwQ/s1600/image009.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAIAGVgq-Ic0xZzr_yesdqmm9oAHg_9CN7BHpC4AM-RV0ForzM9Qec6Rq6SYSXBuAKdzQFsEOONFuWB3mnA430Nzq66qyMO4yxaGGMb97izUCuEPERRFHRWJqklOsOcs6eiDnuWie_gSA/s1600/image011.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="697" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAIAGVgq-Ic0xZzr_yesdqmm9oAHg_9CN7BHpC4AM-RV0ForzM9Qec6Rq6SYSXBuAKdzQFsEOONFuWB3mnA430Nzq66qyMO4yxaGGMb97izUCuEPERRFHRWJqklOsOcs6eiDnuWie_gSA/s1600/image011.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVQETDqIwnQpXMVlsfJ307IeYxiAe12PNo-i97uUsFnGLdp21IePCrV54dbM68nigxmDShdDJxy5YjISMKBbG8MBnihf4-7yTxiU0Au1zmOCOmlJbbGVIOX48GagYef0jWo_FXD3SOVy8/s1600/image013.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="653" data-original-width="941" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVQETDqIwnQpXMVlsfJ307IeYxiAe12PNo-i97uUsFnGLdp21IePCrV54dbM68nigxmDShdDJxy5YjISMKBbG8MBnihf4-7yTxiU0Au1zmOCOmlJbbGVIOX48GagYef0jWo_FXD3SOVy8/s1600/image013.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3hLHNoZaj6sAE0FFMimQx_1EvnOF0E8L_9GpZdKOQY5vUp5DTk6AvsOpULRDJGte6nWArUA1cYsvXCNC0Kt_PDIl3lZbrnNrTeU5GnAKbZIhKQRE56lfWwGIXNYKskf4qWn9ETdGL1E/s1600/image015.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="139" data-original-width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3hLHNoZaj6sAE0FFMimQx_1EvnOF0E8L_9GpZdKOQY5vUp5DTk6AvsOpULRDJGte6nWArUA1cYsvXCNC0Kt_PDIl3lZbrnNrTeU5GnAKbZIhKQRE56lfWwGIXNYKskf4qWn9ETdGL1E/s1600/image015.png" /></a></div>
Set web.config connectionStrings section to<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYCRss9BluS8wpayKpMzZHsqNMAsmbfyD2we5FAzXZsqUzU0arO57Lut3IR7KxfM1jOKymwSNkF10K8AXGpAjA5OKc4MHjpwjf82YNtNRa4WKSaOillswtzCsdHUMdn8PBCYYpGBCmKUY/s1600/image017.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="435" data-original-width="418" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYCRss9BluS8wpayKpMzZHsqNMAsmbfyD2we5FAzXZsqUzU0arO57Lut3IR7KxfM1jOKymwSNkF10K8AXGpAjA5OKc4MHjpwjf82YNtNRa4WKSaOillswtzCsdHUMdn8PBCYYpGBCmKUY/s1600/image017.png" /></a></div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;"><</span><span style="color: #a31515; font-family: consolas; font-size: 9.5pt;">connectionStrings</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">></span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;"> <</span><span style="color: #a31515; font-family: consolas; font-size: 9.5pt;">add </span><span style="color: red; font-family: consolas; font-size: 9.5pt;">name</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">=</span><span style="font-family: consolas; font-size: 9.5pt;">"</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">DefaultConnection</span><span style="font-family: consolas; font-size: 9.5pt;">" </span><span style="color: red; font-family: consolas; font-size: 9.5pt;">connectionString</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">=</span><span style="font-family: consolas; font-size: 9.5pt;">"</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">Data
Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Hangfire.mdf;Initial Catalog=Hangfire;Integrated Security=True</span><span style="font-family: consolas; font-size: 9.5pt;">" </span><span style="color: red; font-family: consolas; font-size: 9.5pt;">providerName</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">=</span><span style="font-family: consolas; font-size: 9.5pt;">"</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">System.Data.SqlClient</span><span style="font-family: consolas; font-size: 9.5pt;">"</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;"> /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;"></</span><span style="color: #a31515; font-family: consolas; font-size: 9.5pt;">connectionStrings</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">></span><o:p></o:p></div>
<br />
Add new class HangfireAuthorizationFilter.cs<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDK6yOnvVKeyhSj3GkN_JtS-HTOkjypvAaJ0w4HFneWvKHCuuqVMGxq4k_74rlI_KjTKbS1AXqRCshDsonSW1r5kX6gTbIs-L65HqUSrjErGTkX0MeMoNL3nA87c8P5OaSms-G7xXPavU/s1600/image019.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="619" data-original-width="1386" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDK6yOnvVKeyhSj3GkN_JtS-HTOkjypvAaJ0w4HFneWvKHCuuqVMGxq4k_74rlI_KjTKbS1AXqRCshDsonSW1r5kX6gTbIs-L65HqUSrjErGTkX0MeMoNL3nA87c8P5OaSms-G7xXPavU/s1600/image019.png" /></a></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;">using</span><span style="font-family: consolas; font-size: 9.5pt;"> Microsoft.Owin;</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;">using</span><span style="font-family: consolas; font-size: 9.5pt;"> Hangfire.Dashboard;</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;">[</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">assembly</span><span style="font-family: consolas; font-size: 9.5pt;">: OwinStartup(</span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">typeof</span><span style="font-family: consolas; font-size: 9.5pt;">(HangfireDashboardAuth.Startup))]</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="color: blue; font-family: consolas; font-size: 9.5pt;">namespace</span><span style="font-family: consolas; font-size: 9.5pt;"> HangfireDashboardAuth</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;">{</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">public class </span><span style="color: #2b91af; font-family: consolas; font-size: 9.5pt;">HangfireAuthorizationFilter</span><span style="font-family: consolas; font-size: 9.5pt;"> : IDashboardAuthorizationFilter</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> {</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">public bool</span><span style="font-family: consolas; font-size: 9.5pt;"> Authorize(DashboardContext context)</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> {</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">if</span><span style="font-family: consolas; font-size: 9.5pt;">(context
== </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">null</span><span style="font-family: consolas; font-size: 9.5pt;">)</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> {</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: green; font-family: consolas; font-size: 9.5pt;">//may need
to add logging that this has happend.</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">return
false</span><span style="font-family: consolas; font-size: 9.5pt;">;</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> }</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">var</span><span style="font-family: consolas; font-size: 9.5pt;"> owinContext = </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">new</span><span style="font-family: consolas; font-size: 9.5pt;"> OwinContext(context.GetOwinEnvironment());</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">if</span><span style="font-family: consolas; font-size: 9.5pt;">(owinContext == </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">null</span><span style="font-family: consolas; font-size: 9.5pt;"> ||</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> owinContext.Authentication == </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">null</span><span style="font-family: consolas; font-size: 9.5pt;"> ||</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> owinContext.Authentication.User == </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">null</span><span style="font-family: consolas; font-size: 9.5pt;"> ||</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> owinContext.Authentication.User.Identity == </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">null</span><span style="font-family: consolas; font-size: 9.5pt;">)</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> {</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: green; font-family: consolas; font-size: 9.5pt;">//may need
to add logging that this has happend.</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">return
false</span><span style="font-family: consolas; font-size: 9.5pt;">;</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> }</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: green; font-family: consolas; font-size: 9.5pt;">// Allow
all authenticated users that have HangfireAdmin role</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: consolas; font-size: 9.5pt;">return</span><span style="font-family: consolas; font-size: 9.5pt;"> owinContext.Authentication.User.Identity.IsAuthenticated && owinContext.Authentication.User.IsInRole(</span><span style="color: #a31515; font-family: consolas; font-size: 9.5pt;">"HangfireAdmin"</span><span style="font-family: consolas; font-size: 9.5pt;">);</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> }</span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;">
<span style="font-family: consolas; font-size: 9.5pt;"> }</span><o:p></o:p></div>
<span style="font-family: consolas; font-size: 9.5pt; line-height: 107%;">}</span><br />
<br />
**nore <span style="font-family: consolas; font-size: 9.5pt; line-height: 107%;">[</span><span style="color: blue; font-family: consolas; font-size: 9.5pt; line-height: 107%;">assembly</span><span style="font-family: consolas; font-size: 9.5pt; line-height: 107%;">: OwinStartup(</span><span style="color: blue; font-family: consolas; font-size: 9.5pt; line-height: 107%;">typeof</span><span style="font-family: consolas; font-size: 9.5pt; line-height: 107%;">(<span style="background: yellow;">HangfireDashboardAuth</span>.Startup))] </span> this will be different depending what the project name space is.<br />
<br />
Change Startup.cs<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgglUisg8oI8ZpbSzLdzHc2mtPqZHrIuHfLCVtBa-Jor19472G3TgtA5_JOfv3Fgq7AjjZ3CIz2ht7YlZFiPFxkZ81RSm7T-5z2hSn8WcTxIxatnz5CfM02SRaQBPqx4ddE89hRhyisnq0/" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="536" data-original-width="1523" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgglUisg8oI8ZpbSzLdzHc2mtPqZHrIuHfLCVtBa-Jor19472G3TgtA5_JOfv3Fgq7AjjZ3CIz2ht7YlZFiPFxkZ81RSm7T-5z2hSn8WcTxIxatnz5CfM02SRaQBPqx4ddE89hRhyisnq0/d/image021.png" /></a><br /><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">using</span><span style="font-family: Consolas; font-size: 9.5pt;"> Microsoft.Owin;<br /></span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="font-family: Consolas; font-size: 9.5pt;"> Owin;<br /></span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="font-family: Consolas; font-size: 9.5pt;"> Hangfire;</span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><span style="font-family: Consolas; font-size: 9.5pt;">[</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">assembly</span><span style="font-family: Consolas; font-size: 9.5pt;">: OwinStartup(</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">typeof</span><font face="Consolas"><span style="font-size: 9.5pt;">(HangfireDashboardAuth.Startup))]</span></font><br /><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">namespace</span><span style="font-family: Consolas; font-size: 9.5pt;"> HangfireDashboardAuth<br /></span><span style="font-family: Consolas; font-size: 9.5pt;">{<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">public partial class </span><span style="font-family: Consolas; font-size: 9.5pt;"><font color="#2b91af">Startup<br /></font></span><span style="font-family: Consolas; font-size: 9.5pt;"> {<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">public void</span><span style="font-family: Consolas; font-size: 9.5pt;"> Configuration(IAppBuilder app)<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> {<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> ConfigureAuth(app);<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> GlobalConfiguration.Configuration.UseSqlServerStorage(</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt;">"DefaultConnection"</span><span style="font-family: Consolas; font-size: 9.5pt;">);<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> </span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><o:p></o:p></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><span style="font-family: Consolas; font-size: 9.5pt;"> app.UseHangfireDashboard(</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">"/hangfire"</span><span style="font-family: Consolas; font-size: 9.5pt;">, </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">new</span><font face="Consolas"><span style="font-size: 9.5pt;"> DashboardOptions</span></font><br /><span style="font-family: Consolas; font-size: 9.5pt;"> {<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> Authorization = </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="font-family: Consolas; font-size: 9.5pt;">[] { </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="font-family: Consolas; font-size: 9.5pt;"> HangfireAuthorizationFilter()
}<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> });<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> }<br /></span><span style="font-family: Consolas; font-size: 9.5pt;"> }<br /></span><span style="font-family: Consolas; font-size: 9.5pt;">}</span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><o:p></o:p></p>
<font size="4"><b>
Configure Database</b></font><br />
Double click on Hangfire.mdf, there are no tables.<br />
<img border="0" data-original-height="294" data-original-width="401" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo77y-NyxEQLQKzTDM37ovGrcKbRV8b-IHstYRtKZ5asOxXCel-I9ft1ICDTX8OUnnIdXoY_4MH4wzGKHG15rg5Ar_P70f9uk9hE25Z4hJV5Jb8x6hkk61iLLuvcald_RwiGWn_9lLxIQ/d/image023.png" /><br /><b><br />
</b></div><div><b>Create Hangfire Tables</b><br />
(Hangfire auto-creates the Hangfire tables when there are no Hangfire tables present)<br />
To do this start the application (F5), should land on the default page<br />
<img border="0" data-original-height="580" data-original-width="996" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhomEr7DU-OnFHvqYlUd680SwqUdEoeo7DcQTnlMXSbiSg1CXpnqYSg8ck-415XA5C9Ol3473MeR8Nw12_jE34K4uQzoB4QDTblxEiaZ1bgWbwGHiX-ml4XeQCt30r7JptNNpBTNiR-Mt8/d/image025.png" /><br />
Navigate to <a href="https://localhost:44388/hangfire">https://localhost:44388/hangfire</a> it will auto redirect back to the login page thanks to the HangfireAuthorizationFilter.<br /><div style="text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5FP4ZfSS5zS22VQWP_6cJAr-4kzx5PiZZMpRUHn_RovLS1dEqKUM18NcRQkbY-2Qeludsg0FXSTEeSPOwuU_S3j0p6nFKFW4b0HmZ8jgo9HnSK0v6MXIzrg5vJxx3Twi-eeMJ8xclbS4/" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="523" data-original-width="991" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5FP4ZfSS5zS22VQWP_6cJAr-4kzx5PiZZMpRUHn_RovLS1dEqKUM18NcRQkbY-2Qeludsg0FXSTEeSPOwuU_S3j0p6nFKFW4b0HmZ8jgo9HnSK0v6MXIzrg5vJxx3Twi-eeMJ8xclbS4/d/image027.png" /></a></div>
Back at the database, the Hangfire tables have been created.<br />
<img border="0" data-original-height="448" data-original-width="369" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4lqjW3XkfWdLNLSYdOVmNGUuLfq4pA-DarJxvHWPfqOS3FpR8OVprhRF4eg5cS4V81_Ww0C_QAKtuwJuKKI1g1P-JAGVziBOnuDDHBpbstg58dYTlUSx21wMEOqIAlqI2QSbqWsKmOhE/d/image029.png" /><br /><br /><b>
Create ASP net tables</b><br />
Try to login<br />
<img border="0" data-original-height="576" data-original-width="981" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJjyn1oUZ-fqtABqoDNEsTd_XFSktN1whbqyttyFTZyR7QHClCykPfpczbXCSIVP4Myu8rDlb8XEFTpKvz788Tn8B-UCaylyBYBg0KIuQa4w78sikUsEYsPHuOGUmik9DqM6ZyQWSpPk/d/image031.png" /><br /><br /></div><div>
The ASP net tables are now created<br />
<img border="0" data-original-height="536" data-original-width="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNasxAZjDqCU272dZMZ9DvO8Cu2Xx19nA5QBxu5V7ZzT8usWzK9ebJKEKdb-KCW4_r1zPutUZ_nAbE0yUJOqCRvdDsVRjYUO0ZLVcBDx1CAsZC25LUyyA9bT2b34E6oXaGMdfpjefNYZg/d/image033.png" /><br /><br /></div><div>
<b>Register Users</b><br />
Click Register</div><div><img border="0" data-original-height="544" data-original-width="987" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3ZJ468dYhZ9hlPDmESPQz1fo7SSUdfWDLZoCAm_M4gUIdF3TW_hzyGA0_obujQG_ODL8MDVVuB3ppxYXRGVWHie66FJfl1dconPbHXpIEfhoCzk1tAY50sxOgPe_lAr9GZFqcKq9nrk/d/image035.png" /><br />Add the following users for testing<br />admin@test.com<br />
readonly@test.com<br />
<br />
Should now see the new users.<br />
<img border="0" data-original-height="340" data-original-width="1424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXathAUzzVbku183_35vZgJJi4MyI8tLWIPC7TTq_5OK_IXY3vimZ1F8c6oTtPYNcxHT1eXCL7_h_q5VJHNyrgGvMLou7UQ0cvPi6UUBjlymSOUaOl5NiMWeqCIrm5_f_MfgvcDSNemTY/d/image037.png" /><br />
<br /><b>
Add Roles</b><br />
Run the following script<br /><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">INSERT INTO</span><span style="font-family: Consolas; font-size: 9.5pt;"> AspNetRoles </span><span style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">(</span><span style="font-family: Consolas; font-size: 9.5pt;">Id</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">, </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">Name</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">) </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">VALUES </span><span style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">(</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">'4f6e6a25-e532-423f-ba60-88bdae3ef6b8'</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">, </span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">'HangfireAdmin'</span><font color="#808080" face="Consolas"><span style="font-size: 9.5pt;">)</span></font><br /><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">INSERT INTO</span><span style="font-family: Consolas; font-size: 9.5pt;"> AspNetRoles </span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">(</span><span style="font-family: Consolas; font-size: 9.5pt;">Id</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">, </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">Name</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">) </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">VALUES </span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">(</span><span style="color: red; font-family: Consolas; font-size: 9.5pt;">'f222ed9b-354d-4621-bfaf-8e8d21276ac2'</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">, </span><span style="color: red; font-family: Consolas; font-size: 9.5pt;">'HangfireReadOnly'</span><span style="color: grey; font-family: Consolas; font-size: 9.5pt;">)</span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm;"><o:p></o:p></p>
Add to AspNetUserRoles association<br />
Associate admin@test.com to the role HangfireAdmin<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdjrduU4lJIsJRAjIelI95xhhtmNjpzY97u_1Oz8SDzxuHAqtGoUoCYUcZrwVS9xX79xWsz8UO6Hra0RXOz7kbfNgA6WgSvTyXDUNVlzyoF-jEZDbrk6gIN2xaKm2Fc2nzoV_3WqQHARQ/" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="294" data-original-width="964" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdjrduU4lJIsJRAjIelI95xhhtmNjpzY97u_1Oz8SDzxuHAqtGoUoCYUcZrwVS9xX79xWsz8UO6Hra0RXOz7kbfNgA6WgSvTyXDUNVlzyoF-jEZDbrk6gIN2xaKm2Fc2nzoV_3WqQHARQ/d/image039.png" /></a><br />
<br />
Test<br />
1. Not logged in, try to navigate to <a href="https://localhost:44388/hangfire ">https://localhost:44388/hangfire </a>will auto redirect to the login page<br />
2. Login as <b>readonly@test.com</b>, and try to navigate to <a href="https://localhost:44388/hangfire">https://localhost:44388/hangfire</a><br />
403 Error returned because the user is not associated to HangfireAdmin role.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR06uIiR9-sdSuVgxSlJQ7PfpS_XIOTFih8qhvmOnHc_f22JRt1gPEvkrJQPFEcNYxpN5inSMzwaN8Wr2LwAUCPSKI71YresL-SCDpGT85fO-jA-RXruuKINp2V3RsaVrVf2sq74GWwgU/" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="439" data-original-width="993" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR06uIiR9-sdSuVgxSlJQ7PfpS_XIOTFih8qhvmOnHc_f22JRt1gPEvkrJQPFEcNYxpN5inSMzwaN8Wr2LwAUCPSKI71YresL-SCDpGT85fO-jA-RXruuKINp2V3RsaVrVf2sq74GWwgU/d/image041.png" /></a><br />
3. Login as admin@test.com, and try to navigate to https://localhost:44388/hangfire<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMTucULgqSR40u92s8YnhyxhXlvY-lMZRH1raVSTJlX4KG3jL9agjcDKDb5EynbPRIJskvRKz29vjnDOE4HEeGPqqdc-qdS3BgVzgBVipjbMSqSoaKm19KyzaMwcGEnwLWjnzfCQaHQoo/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="572" data-original-width="979" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMTucULgqSR40u92s8YnhyxhXlvY-lMZRH1raVSTJlX4KG3jL9agjcDKDb5EynbPRIJskvRKz29vjnDOE4HEeGPqqdc-qdS3BgVzgBVipjbMSqSoaKm19KyzaMwcGEnwLWjnzfCQaHQoo/d/image043.png" /></a></div><br /><br /><br /><br /><br /><br /><br /><br /><br />Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-37005843003821185782018-12-26T20:29:00.001-08:002018-12-26T20:29:36.518-08:00SSIS<p><strong><font size="5">Purpose</font></strong><p>Setup a package to use <b>Project parameter connections</b> and deploy to <b>Integrations Services Catalogs</b><p><b><font size="5">Design</font></b><p>1. Open or Create a new solution<p>2. Setup the amount of environments in Configuration Manager<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWpD-wXi1Ihc9G98fLcOGFeot_PMWpeCLH646nxWtMOD621JIWHYXtojiN8Sfyivua82cQL2PACzID0smBvSEQpaeVd7MKGOSXMq53Q-QUFXQw4kgNcBV1RcczD93diGfVLVw8dPFNZ4Q/s1600-h/clip_image002%255B3%255D"><img width="244" height="218" title="clip_image002" style="margin: 0px; display: inline; background-image: none;" alt="clip_image002" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsZCYBF1DmsudeQqYfEqRPuxXTewidtTvfY1dJp4RcE6TSKzW9Amb_J-LyuxvPUoJVz2P8h_H7fVPFf19kNgGKHPzBRAa-OjvYqOc3du5wSBVHSQsjoEo5YtSd428JWlQRGQQQ9n8y47Q/?imgmax=800" border="0"></a><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw_WGihc6thjbDRqNpuWurziTU3MyOFN_CipOc5wDmRBgr28MTAqDzDvxOJGFah1Oa-G2LDBh-npNb3_ko5wy_XS_6EbfhXOP7D5ptwe09MQOeN5u-FQoKx2rqN-aXwae6CBovlabIPww/s1600-h/clip_image004%255B3%255D"><img width="244" height="156" title="clip_image004" style="margin: 0px; display: inline; background-image: none;" alt="clip_image004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfNlVgq4ZJGDTXNRhFJs5fSupB-H437EiZUDoGQdNFzx4Z34kldlqDOZ-3NnWm4PB4s0PfX0I_NP8B6kSHJQ4GbvZw-h-D0bPkAac1ThM4zOAlsoQXXgasE0JomSMWANy_alwhIJnBTuc/?imgmax=800" border="0"></a><p>3. Open Package and Setup connections. In this case sql db. Right click on <b>Connection Managers</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd_o85u7j-AT5Liiao7ObkydjTavVW5gEepAF8NDVTkiAnmiA0nz6MvL-B4f5bHNMADr7MEw6fW8GrOPOEvlfSjqXsdOgj1hbCYg6VBT0Kq0vxzKS6Qh-e3HVZV-FJ2DbsXEDd0qm46gU/s1600-h/clip_image006%255B3%255D"><img width="244" height="194" title="clip_image006" style="margin: 0px; display: inline; background-image: none;" alt="clip_image006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS2aGerkCrzr11DwDCjTJEkwHRuryToak5wVj4JeIzYcXjlUE8wASo5NIG469wB3HOEl2EvdfyeYvSsIZd1oGSo3OIAwvg6TSxKwLEcVMxr-18JZxflP34b5XDNSIkThuuiOUK4fKfY4k/?imgmax=800" border="0"></a><p>4. Select <b>New</b> and select server and database.<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwtzjMyaC7CqkkQO7VO6imb7h5JkMf4cz4AGPiBe8pFacxnnEf0NZrrmqmG6ZsZvpTrXoL1XGBau_GBwy93hshmfi4PhPjOqi_hJiCTlcBoFDGHMl3DVmwtOW2vs7gOoCF4P8PONpS4sM/s1600-h/clip_image008%255B3%255D"><img width="244" height="210" title="clip_image008" style="margin: 0px; display: inline; background-image: none;" alt="clip_image008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Uc7hv44utZsRwsZQhHTS8mlGqMhyb_PenHGSXwxiqXBMW7befex2J8tHFm5BGUQW-4WApsWPPscQke9MZn4UQi5F-D2gXVi3mJj8uHm7SoiMvQMrO41U9_nu1Iv2CeIJMVUcX0F1tvk/?imgmax=800" border="0"></a><p>5. Rename connection to something more meaning full ie SQL_Source<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC3DEzvYpJH-LYXj2sHPMThm-iguDPEqGbfhJ1w_uqwnvnxnFkvUa1kuBAHcyKPkdSPO2vPFdXF-qwn1s7axauxxncVR24U-PuaOQvYEu4vDBj2dxBunjwopOLigR35LNFentKKFBhep8/s1600-h/clip_image009%255B4%255D%255B2%255D"><img width="194" height="70" title="clip_image009[4]" style="margin: 0px; display: inline; background-image: none;" alt="clip_image009[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBqj0gwuyYX4sx3BrLLuQWMr0KCRwaPoJ7apRzK7qvA_qat1OsFdP0bsJodcbWSc5WqD3Mv98zbOCVgug8vAjCundOgoB9zH8EyX9txFQVBtGyN-a8TQUYVV1ZeQ8UhWvpeIl5PPGWcHI/?imgmax=800" border="0"></a><p>To <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPZUzeOswaUlmTI2D2kHOUSf7EEpVFGG0rcSTkEsIPsUPfHBBwFfoIh4i0HFWS5REzWRtOwG3KO5pPy8e0XBs5qGVPBZX4s2hc-noVgv9raiU4Dg3m_vlsRiP2Zy96Am8QxprsLhlT8_A/s1600-h/clip_image010%255B4%255D%255B2%255D"><img width="194" height="75" title="clip_image010[4]" style="margin: 0px; display: inline; background-image: none;" alt="clip_image010[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0myUicdMCHS_-P7w5HFp21mEKmzQs8qrnngsma1QQ8d6AaCdPKL_jwALRy5GkqP6yeMyY9b_S6yUZpvFkhEKN1ScybWOX_1E3U8Ib6_Tt4tJQKepwGK3gHQfS7QKeUwvvL_3qYF-6imE/?imgmax=800" border="0"></a><p>6. Convert to a project connection.<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQoH7e5uYSZ8y-e3oBKcHPgEdjJYhcEHmlLznDT6sWzfp-2dqHH03gwAQjJOwjav66WEAAhrlZpRjFVF7_uEzfG9GsRD0vn5CTK_I3KbINwBlWw5K8tG129tBdimGZbu0h6T6-X0UqIpg/s1600-h/clip_image012%255B3%255D"><img width="244" height="235" title="clip_image012" style="margin: 0px; display: inline; background-image: none;" alt="clip_image012" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLszYockD_dxMFLAYsBp37_9AxOtrcoove7rBoYfA0BaBDjFxwmVREdbNZxDLKAo5dkQj26xsytPsYS07hmIv-uoZ7WamTrCwinhtfpp-CmWBYwNYgN6wDOYk_wAFfe9_53XL2awsTwYQ/?imgmax=800" border="0"></a><p>Name will change from <b>SQL_Source</b> to <b>(project)SQL_Source</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrI3l8cVS46ZirRpmTTvrQ1pDEOEERr64qAUmvwpx1-S3olL1L5B6UOzvtZ6c4SabEqZyGi8GjgvLHRrZfjzIkNbOqReZu4Ovx-YisyLGFYvFk00UtKe7RsFMnjASk9x02qT_bhiCQ8h0/s1600-h/clip_image014%255B3%255D"><img width="244" height="105" title="clip_image014" style="margin: 0px; display: inline; background-image: none;" alt="clip_image014" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4iOx_651oVGsgsAFEG99_KG6W7xN1JNt666jguMM7wFz47Dv0Y1C-DK-EZACTbP1h35Nmr-zL0KfLMe22lv0gPAjaEzd1Jz0Bbve1nbCjDqYzBOOLv4esjpIE_PQunGvr4kabVRVPz-c/?imgmax=800" border="0"></a><p>7. Parameterize <b>Connection</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtRBXTCLVvBt3blKeEirCEuIHc-4sKlkjw1BLU-a054HpqTm_TFmfFLXrVOOiXSg0ul1lYZcMSR85Io_5ecx7SoP_B3ze-nAEz1U_lvKfS5ryk2uhjnQqv83Q_zrua95h8BKxDrngv58M/s1600-h/clip_image016%255B3%255D"><img width="181" height="244" title="clip_image016" style="margin: 0px; display: inline; background-image: none;" alt="clip_image016" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihqg7ciKUucNM0yWEiOOfAhDojcrP5WAIKgN3M_R0gDujGEyqaDPCnYA-k2TqeAwFaNwLiz3lGoPZD0C_ouqGmx14vCEQ34nUbR8Z2Irlk8Wd-IO98u5lxqW2zt2jK9E45re-j0M6_cfs/?imgmax=800" border="0"></a><p>7.1. Click <b>Ok</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHtlUEwcBoxu9BSzVzoIgfyT7uvhzlqp7ywIln1g-7-yP0G40QNXwzbwB4RiEReDgbXWp0jKNmWJZeKQrrxiV7fQ3bKfJfZLHVpbTlBnioelnLONF35I_SiBTZ2DwBdzsc5yqdz7n6da0/s1600-h/clip_image018%255B3%255D"><img width="197" height="244" title="clip_image018" style="margin: 0px; display: inline; background-image: none;" alt="clip_image018" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsRyS3vze2qWfWnW_AUbdVHU0YvwjLHMQVj2QddUWAhLT_ERJW6Rs7fEdEbUTkMI5EX7kM_OMFl-_pVRJt_uuziZ8EW9RIA7BYjDRi75-2-WWOnrdk_cmKxXYAsNkdNHe2mGWyjTyzVbk/?imgmax=800" border="0"></a><p>double click <b>Project.params</b> to open<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm7hnDAJbSbsDBYOzj6Ux6Rb6pF9cJ9_uo8gUURCZ6iMc9wtUqRFZWNjZ6eauW0UcpeASXbmc2pKa90zZMhUeCga5M8zVH9pwzJ-7Kq-ybK7WZVpaup3N7NalIHxZYU8hzohGHuINNsYA/s1600-h/clip_image020%255B3%255D"><img width="244" height="83" title="clip_image020" style="margin: 0px; display: inline; background-image: none;" alt="clip_image020" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS3od3KrOMwGVisB2M3wGORNz8EkvUpa1cdriFCtIirux8VK1UWkKrRAaBaGxtXPiHneQ9vacgOm2rWrg4XA1TDFj7SgCD5x7ZxSFU5KI8irIsiCaNM-Lp7-VhsOaSMW9U_ePAT7W9mEA/?imgmax=800" border="0"></a><p>8. Add <b>Parameter to Configuration</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyFWpBrEweUbUJ_YhMZda6wuujL0SCctyaYamy4pBV6wWYDLd6NmQ_cD52nyO21DqdfnO0-wvajavJMrI71axCBjxhFcPda-Z2yUDusccpswYm-F2U653kzREA2gNmBO8wBaKqWJtxkA/s1600-h/clip_image022%255B3%255D"><img width="244" height="107" title="clip_image022" style="margin: 0px; display: inline; background-image: none;" alt="clip_image022" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhidxl7Nr_6UHBQNxVp-FL6Y36icU37MXRTNFzp9bKTfGqPVv6_JHqUGPl5rmm_0LWT7yxVQmyJudz5-1KjZHqBNjqSIXERezVpL4rZgX4zPoWvXnqvooevlBp-5-3f-LWZspZp-_CYgSg/?imgmax=800" border="0"></a><p>8.1 Click <b>Add</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPXla0xM9eRO882s5hPbRIVVd_Ft6YlxFLiZsRIKoF91zJwwdBEZ5ApV08b2Oa9NlmfxSYWg1FwXhGKGOuN8qWSaR4RGjvkt_7kVOSzLYmkVbG8DoUA7vkCPwCGLhlPJyGhJKgG7w0Z9Q/s1600-h/clip_image024%255B3%255D"><img width="244" height="233" title="clip_image024" style="margin: 0px; display: inline; background-image: none;" alt="clip_image024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNWIjnOJJLJ6BA6xh7Sn2LB7_UzLtYrTb3-HWWpPMczHiflNLEIqck8aJ139LmiNouVvWbgMvCx4dB0sBcUavdpKWGkUg1v7QXiXcoIIgE9R00YucGyPW7-nmzuI0_Op5avyetJ1Sze_E/?imgmax=800" border="0"></a><p>Now you can adjust the connection strings for each environment<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVudCWCbleZr4nb5qMuT2bIWxWdoRxf2y0IKF8MkTpRc0si0cFrxMGKc8crU2yCOzK4gGz4RB1UDOVDdmOXGT6B89BL2b8PD-seVErzdQ1KQbhl8CtBq76yPAUghvh_UghZ3SQlMUiY8c/s1600-h/clip_image026%255B3%255D"><img width="244" height="95" title="clip_image026" style="margin: 0px; display: inline; background-image: none;" alt="clip_image026" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR73gDXcAU6FCgUMpgGzl9Z3u7XPHIbPaEV4kR1YFwmB32xHCPmvKPGiuKfib8k884zGH6HdBrbjhkE1e-eXFJwYaeU7MggQYYhU5sWhBLbBEgp_gc_hjoK9PHkcl4jy4H2xq0ySWfVek/?imgmax=800" border="0"></a><p>9. You can test that the connection string changes per environment by adjusting the solution configuration<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrMhwgPdr6Tl7kCnoEjZSYVqbMz-pMOUw9j0idfw38ZsTk9lOzSHGXB0UDtJmFQWgACgBqAuo7-05VTvIgXz8FmVZEQwdNsx-vhB_G7D1DuWDyCjNZ6KBVAdHbKO7di-a4mavh4wyT_JI/s1600-h/clip_image028%255B3%255D"><img width="244" height="38" title="clip_image028" style="margin: 0px; display: inline; background-image: none;" alt="clip_image028" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMXDXR6k9GGlXMeHQl4TP0kemPYPu48w1gMA9RrtHw0hwA1p5U0WLtfqJF6q1HVMSdWOXO6WHQfOtEToo8GLd5KUp4ZUObJD3GjyPWtOFVnSRS2YcpQu2s1cSNhl4Qz3BUXiEPNCFAS4/?imgmax=800" border="0"></a><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwW21ggcQ4GfxeXgpnJ8iNNqcEQ2OmKMmFZ9fiiYQmCu3B1qVhkZOFVsiHCw03VONPf0toLmQzE0F_QtFvc1-zBpq4dLi8BnYL0XekQkYO9igOJR_VUFgq77YbW7HxJ1a_xbJPAeCUos/s1600-h/clip_image029%255B4%255D%255B2%255D"><img width="244" height="40" title="clip_image029[4]" style="margin: 0px; display: inline; background-image: none;" alt="clip_image029[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL3lBU_hdIeBvSUXLLW_UCqgdAMigX5UHnUZG_TXM3eVcR29dl87ZFcvhI6z3yJ6vYaM-Jq05an0mu3DxAszW1vjMiF280EWlvjST76YGBJCmUOQJKNDo2L1o78dFVbw1IaWHClv56qM8/?imgmax=800" border="0"></a><p>10. Repeat Steps 3-9 for destination connection<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCzDO8XMjZIugK-cTpagtjTfjH1Ffp6-y0aSxbbT47a2clHTZZcAtJZrYhlCs02CG76FoBBXgVu7scCme5cLBAGCA8XyeUyqgUjXno8jEMyM1LjMKvjbfbwUHTiF_JrG6mbG67TM0Oxtc/s1600-h/clip_image030%255B4%255D%255B2%255D"><img width="244" height="100" title="clip_image030[4]" style="margin: 0px; display: inline; background-image: none;" alt="clip_image030[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5NmLYTL03xK0Gnar7SUfE2003ny5Ce-YAhzKpmd_tImZ7Y8DFJrzI9p5pF5AByJsFXO-UTBO9VIevqMK_OGsAbt-Ny_UoAV_Yd0OGnwRE1CZVZHO6CCT9FlZr6lgIPPmyrHXS4W_t24c/?imgmax=800" border="0"></a><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGWusvFyJhwVgllDsZj4n1KMKyb6o84NInQNYeQAIhrzjKBThIm8tdz5ix9uQ5Ymje4qKtbZN1USGTebv34HvctnsA-pEaz1wIgRZirWqnpzmmD_Ho8kkjcKYZB9lGNepHzIBDy9MbTQ8/s1600-h/clip_image031%255B4%255D%255B2%255D"><img width="244" height="41" title="clip_image031[4]" style="margin: 0px; display: inline; background-image: none;" alt="clip_image031[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiKUOFRSF5vJ8wPl_wev5AM9CEKUpB-hI2JQysgVp72RYXPK9ZFbsi0Z1Dp-PYrb7SiNGAjr_89BdeU87JUmCGHBzfE8cTqodVr-MFkouM4pFY_LWuPoWXlpFjFmmij510p2ERFDBbz4E/?imgmax=800" border="0"></a><p>11. Lets setup a simple data flow task to test this.<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQzZjN-_FscnQjLnWfirWUs5E_36t_Myyt1wKim4U5nU8nl7GkqtrdGzXkY_isL6_r0EsA5tbS39S9lQE20hDWXoJ0muFuh7MuQ9TMB4lDM-gP6bD1rbYICfZVtwyYoVyqtsCKErl1huY/s1600-h/clip_image033%255B3%255D"><img width="244" height="76" title="clip_image033" style="margin: 0px; display: inline; background-image: none;" alt="clip_image033" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjzK2I4Q5jdInqJmYhjDrBCwYbwytA_JtbgiuEVLa4-UcvnfUII9JK1bfmyVJF_unoG826wt9cWyDREimjykYV0Egqs8zY4R69O9XIo6U0_4fu3abfSHjYbOAQABOl0Kq7JsFOO6bRDfc/?imgmax=800" border="0"></a><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDrJkl0FKSCOhpPG053MLt9y8c73dbM3dKH2xTNCU1Y01jDqqNbBlWzHIiahiOuK_F0KlJXwjw6EFm5VIyUs9QtGNsQ0PsV8CTONWYIYXCkIl0u5PcTHVMbhLr9L7ExvnDLNKBuKXxhJE/s1600-h/clip_image034%255B3%255D"><img width="244" height="131" title="clip_image034" style="margin: 0px; display: inline; background-image: none;" alt="clip_image034" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYtw3FAaT_04-J5-j6dCYpNlTMoZ4O6KDdH30cG-Fgs9grt8gElYKvxB2SpwRse8olgbjJYJr5JjYVrg5bzgUBh75QRvihG9i68NGNF6GnRdzbAlFwSWs44uVJspSmN0zA0X6HtlgES5U/?imgmax=800" border="0"></a><p><b><font size="5">Deployment</font></b><p>1. Skip this step if <b>Integration Services Catalogs</b> has been setup<b>. </b>Setup <b>Integration Services Catalogs.<br></b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIJwJfJDi1xtiB5WJd56kfqxtp1ga2rhwvQAN0aFtHkupFaVaMX5Yxr-WFZVdYklk7QQsrEA2MNExaefB9QXimYB5QxzUlHGlX9A49DvPChoFLV1iSsNAK-Wv3QbflAxrf50w4clmx5Nc/s1600-h/clip_image035%255B3%255D"><img width="189" height="244" title="clip_image035" style="margin: 0px; display: inline; background-image: none;" alt="clip_image035" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk73tB4iBMtnU-aIQaVWh6QCgiOt6ZrC5G56wRr0ZKYJYOMyJ5sIPAwAP7LHdCCNgFMOvrEyfQWZwIWpwD8144UDmkndRymwCmzlgap4UP1Ehdm4J5omrTtSby4z5jUpvvxoO-NAxVYuQ/?imgmax=800" border="0"></a><p>2. Setup folders in <b>Integration Services Catalogs<br></b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQunYntbGlvJ-4D3qQCjlTGpdW1sqly5lMbL7JtdCkgX3DsWxzMr400EYHDYKqVp1QhkB50VbInFTQhc2ksAp53YwnFguiDGv7Ndpg_G-NjEtcfGRlH6gcUHt9TK5KuM0rJ8k_5ZAuI7k/s1600-h/clip_image036%255B3%255D"><img width="229" height="128" title="clip_image036" style="margin: 0px; display: inline; background-image: none;" alt="clip_image036" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqS2vhB5rYw_y9KmtzNPh7oquaLCvm9ArdBi-YCoVBa4lMqOvot6ohj-2nGzNE3_YnjyzkSXpaoeJGj6MEZyUBMxLGQch1ulwOWC7FZJV6DK7jVi4GNEcqQNzN9vOvEe1WcA2_HlclLAY/?imgmax=800" border="0"></a><p>4. Deploy package/s for DEV. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBkbnzBSHN0WK6Phcp7T1S9O3J-_pamMb3x8CrAdVqdQC30bYkIXTfVu8MV4BZ_8q1GBsSRVp5AhzLAY9j6Nm1tHxVPclWIFOKOmsftwayCt3oBU4nGTrv2xbivcZZe4u8kLcvJb-_ad0/s1600-h/clip_image038%255B3%255D"><img width="244" height="115" title="clip_image038" style="margin: 0px; display: inline; background-image: none;" alt="clip_image038" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidUA3FIhDHW1N3r92r90fktH2_wtgtT7ejsq1twWoKjl5LiIFzY0L2a-c0TZl116fhjKbOCvKKY8K8Uu3o_Jz9okx8lkVp53y70Ig4AXfBQ6qyokmElNIiHfwlo9wK5r8iyLHyIPEn8Y8/?imgmax=800" border="0"></a><p>Follow the wizard (Please note that a new deployment in project was created in <b>Integration Services Catalogs</b>).<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNs1VJuiL3NXlM_UPe2ZGVdNSHLZT2aiEuOBKjmr9JT_fIrmlmAGJTzzn2rr1GX10clbEpyVDys1nQrQFlwQMW_6NmyBTIGgvCyEN-JZsw1Ci0_7AH6aGacuy8tjM-giWfyXKFWl8Lqog/s1600-h/clip_image040%255B3%255D"><img width="204" height="244" title="clip_image040" style="margin: 0px; display: inline; background-image: none;" alt="clip_image040" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIPdyZxXgt5dE_MnqG8P8giwb_Lonr5dleqQisinuuTNR7POL8XMiJ91cvaqSJC1kAk9ztrZDSuC8gdLqtVeXpK1UxJSkV0ZA6uFPWL8yiGQ5Cb6Ex8gYXUlz-Xetu_psFI7ver29rESM/?imgmax=800" border="0"></a><p>5. Repeat step 4 for <b>test</b> configuration<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJDDHsqxnvgDAOXua35l4pjns9ghXcmJcYfFt8_qb9usCP4Zc_o01_aLePP9RTraoBjZPk2XBWnpxi39_bZfpca68F0ZkSsC5I61iZsqN2CVPBP0vVRy0j1-7EBIv9khE52WWgkxUElc/s1600-h/clip_image041%255B3%255D"><img width="244" height="212" title="clip_image041" style="margin: 0px; display: inline; background-image: none;" alt="clip_image041" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4E1_0Q9RDr1cUggUyj_dJsoPYlAwg4mycDiD1OsIlM6LSUrMj-mcmN88ZPwAsURvXZHKd8J20la1rZTJTmnYGR3n57k6yySqqYoq_jzOhUTP3_A-svzfvF6JamS1nfO3TNRv6XGMXieU/?imgmax=800" border="0"></a><p>6. Check <b>configuration</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoqUzi0hOF2Mbyypx63LreqHmfF0ifM4j2e-b4g4xhp4xAA3AbrX-eY6EaVwpDKqI6EXHaqgo-wh7a_9nLTCMDdfwGDS6dKkN9JnclUm2i596EUZ6YoyZxvCLjdSW8FS_SEC7hUhR20o0/s1600-h/clip_image042%255B3%255D"><img width="221" height="244" title="clip_image042" style="margin: 0px; display: inline; background-image: none;" alt="clip_image042" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFfKynODDpOnSwjOEAG-kff8u7pWgDEt1DXSLuyvmC4P5_nC4ITThzPQBvuBB5PzEub8Cbx9CjESeQ4Dp-1c9AoB96u064mBDkdBR_7ahyQ5ZYwzonlxn6IG_4_HiDx1zfTF5WWheviKY/?imgmax=800" border="0"></a><p><b>6.1. Dev Environment</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2hjU35-E9xNW4dq4mCGXuBz0m4-q09x-Za7EQWj0X9GVL2NdprvMkk3kzRmjQzahD2Oc4bQhmJUwgH-kWuZdWh1eq878_LH4bp1PP7AycoWpPcjPd37ilXp_C8K9Fe7vXmbK9ctjbQxE/s1600-h/clip_image044%255B3%255D"><img width="244" height="166" title="clip_image044" style="margin: 0px; display: inline; background-image: none;" alt="clip_image044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMvFFhfikARoicnatjLf2p89mUGz4lB269mRp6Cmj8NPTisWrLBurROyejMmz5H1SRQoNT1x5YrF0TBOZ1BorXEa1JbKZUpOo69g7qc70srXKUr1XuWLqOKFsW0A4F7To1wP0jwAkM8gE/?imgmax=800" border="0"></a><p><b>6.2. Test Environment</b><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicq80i125eCTBb2NX5jnQ20O7W7LmSIZpXd4bs3uwEQ0XOIgeQJen1In8MxFhbHWpLnDk-W1LaVNGxw8QMSb6szUaYhloe8pua4Dyy4taDYuYhZC20p365xjuxOeD6kUPWre2ZN7NapYA/s1600-h/clip_image046%255B3%255D"><img width="244" height="165" title="clip_image046" style="margin: 0px; display: inline; background-image: none;" alt="clip_image046" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt280GpdzD1uiAF0Ic2jL2ok2eLPmmkUQNl98gRS4XPeMtUbdKY9yvEnKeXgXnoUpZAhPiMsvbZzeGarqh9dRFhqr7-eNFpmbaI2ByvJsGJRbrs8Gp3Sf-UvzkyUA-3fGXgCqvSII1f4Q/?imgmax=800" border="0"></a><p>7. <b>Execute</b> Dev package<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7cJjebiYhVK834cF3njhPUs-jh8KBk7Lk2XaoywkQ7tMzaTK23ekeLzk76ZsQl1MtlnjJHlsf4SGjK0LpeM-WfnHodrSnUW14iDXI2PBmOgz9ACZsIYftULdQPuevJ-Z_QzSKtRabi-0/s1600-h/clip_image047%255B3%255D"><img width="244" height="191" title="clip_image047" style="margin: 0px; display: inline; background-image: none;" alt="clip_image047" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKP3c1uhwFGZaDcge9eXVaya-V2BdFsOuAK8zae2Xa_-HOkOmTAzV6Vy06RNT7tPvswj82ULeXGBQW0rJP2LqwudLbhP7F5XyKr5Q5u-F6-a4-HFgScZ8OJLzqDYtYp0cN9CXujB_ySYA/?imgmax=800" border="0"></a><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix-wCN8PLoeP6rf-MG5e1V_ZabsCpQToYgupbPpm2bKz2K2Q1o6Cc7OZzpDpus2tRAvmAtApWBh9Vt3OzJLG-JCty81ILRbcpdrQ8R-CF24ZsEdkE1YJE9-n7CZftSL_QqrtcRthXYBOs/s1600-h/clip_image048%255B3%255D"><img width="244" height="182" title="clip_image048" style="margin: 0px; display: inline; background-image: none;" alt="clip_image048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjszk44RG__O0bxUAkJh4mVtSzbmxJisnsyENbvxK00tvOcDCgFWgPBg-CMJmGyjXlRsLZN17uEUYlJGy3115RH-HmLOCsIHohsctOi6v26j_HBzkbZ9ITQhu5PsfvPJCk65pLeeoCLwFw/?imgmax=800" border="0"></a><p>Result<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqdS5ohZOg1kdszEs6MkQ-kHHY6SOaGp6tDkXdbU7FZIwzdpo_v8Zzi4TaWNgitvhkypRMH0Bp_ehwhJPq3jB3wGQOqwZOBHvCmQlkBZ1XcSuh4_GB5RZwN8a-4aPZRtuVcdUzk5GC3yM/s1600-h/clip_image050%255B3%255D"><img width="244" height="186" title="clip_image050" style="display: inline; background-image: none;" alt="clip_image050" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYOLjzVZh9-QncVM8oMIcycLw__e5wiqlsGMoWwCG4uK-FpTcGD58dDZMNRc1L-Tpmefk-q93XuxDwqy6gmUlC5vxHV4DEzrS30xujZq4NN5G6A5hxj44oBsACgwxxNKCMzOrZnpz9X6Q/?imgmax=800" border="0"></a></p>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-49526598563697788592015-02-06T20:05:00.001-08:002015-02-06T20:07:06.695-08:00Presented @SQLSaturday #365 MelbourneDid a presentation on MDS this morning, covering some basic MDS theory and then demoing the codeplex MDS administration tool on complex deployments.<br />
<br />
<a href="https://drive.google.com/file/d/0B6ECHCzjrjrhVTJmb3RIZE5GZzg/view?usp=sharing">Download Presentation</a>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-91779021432571548022014-02-17T16:52:00.001-08:002014-02-17T16:52:04.788-08:00Populate varchar(max) or nvarchar(max) to SSIS string variable<p>How to import varchar(max) into SSIS string variable.</p> <p><b>Database table</b></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq9MRctCFH6OFx6b53kcIcib4pZAGJiDHITm6BIvRyQP8ied6Ko1qDBhJB0LkMHDJQAKi3EAkUDdo_ofmqQ8QZD-3i9Py8eSxuVtKquQveUiwesdLhIJldnI70JqzTDeTYIMAuvwXIeqk/s1600-h/clip_image002%25255B3%25255D.jpg"><img title="clip_image002" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image002" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_yBMr9bM7qOPKNl4glYBvpmYvasXN8pADjK_cSDKNeeodHzaXWTPsvlVYGHhi8vcVRq2bLbcHKGviyvN1M3OeKRG_bPktMFC0PRjjWU5T0RT4zjcsyUrmc_tIEG4A1KLB1v904ES1h2Q/?imgmax=800" width="244" height="192" /></a></p> <p>SSIS Varaibles <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD9lVYOyp_ET4tl1UGJc18WO-2rFZWYJogE86R-Rhx5azQf_9FL50AIQF65_ADDD1kBsJILr31gjwvNgvTaepcKxwBiROBcLXWVARfhjPfqB4roaldignCyK8-Lieb_KkvnDxtwWQ1avc/s1600-h/clip_image004%25255B3%25255D.jpg"><img title="clip_image004" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicP1iOBVZcfAbBhEBHuIqqXzfVZLhQExL8EyuqHJVBUrTxkzNLPt3eLLq5Ska1mtpO59WVvdD0R3U1YvQsAKuWY-tQum-S5f5YOEPTKdrsE75Lce9avNeQ16QJ45NMf74dI_9WIF9Jn04/?imgmax=800" width="244" height="36" /></a></p> <p>SSIS query result set object <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYeV5tlyZfoEPzRPmhhkxXGzT7fRu_YkS89GSL2hhzINeZWdFHckXc40WwOUPaEv2XXK-HdbyHkLfzqmiGSWsiRMhkBFM4KpMTion8r9njr9vHWnEdOT5iuM0OU-VlNnsJYZHED6lZ1eM/s1600-h/clip_image006%25255B3%25255D.jpg"><img title="clip_image006" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil0xeGv3KnCwfyUM2xY3qJbzDI6A97TChqYS8eqWKKtUSAOND_TS2ZfQ8FykPkdOg57LTpRPKRtmB0GJwZr9OByS1jSeF9oc1ai6JihCDKABHWxfJQnqzSlszlDmMQ46GEMZcKYiyhfQo/?imgmax=800" width="244" height="62" /></a></p> <p>The foreach loop has to have something in it otherwise the variables don’t get populated.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpUX-2uJGzFi3D8FXgmXoM3XufWZzIp9DOxJTfG0S7JONq70W9DB9WHEsWnZJRKIbkaTB1ep02zHf-KtIKAdv0JjNz6ejR5LvMkSw1uqOAe6HbmvpoNXHrx2VPGFC0CxQUnO2VNz794vM/s1600-h/clip_image008%25255B3%25255D.jpg"><img title="clip_image008" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOS7QFpDGlLxdAvQYFkpr7IefNzQ_pqNPNEFx3JznAIA05eUULYRjSJ0jQ6SKmW6bgsc2AAIP-q6EA2voE8Ia7R-WQ4JhgHKv7NC5Hfthq0qwBdmD7MK06KI4r2su_2msGrP1wUta_Z_g/?imgmax=800" width="244" height="169" /></a></p> <p>Execute SQL Task set up. There is only one record returned from the query. Make sure the the SQLStatement handles NULLs via ISNULL(xxx,'') or COALESCE(xxx,'')</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwSJWCdq7QM4QLxAma6-dt9TASHwaAxGXV0fuZN6qT25LGbQsTNNdomH1Muz2C084RQjoBP0wfCTy3gYClplgjx8cH5tiBo0Tm5Xjmtoge_ut1ed0f-m_zAO0uu4u4Ql5HfXfR9-YaTw8/s1600-h/clip_image010%25255B3%25255D.jpg"><img title="clip_image010" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsFWxxbD1CrxnR1gWAAQyLxloUREV1gAJnHftLo1BVRw0gzuk0tUfpu0nlCAiVK2h67bccT_sSDep-V3tzhGmBVg5nhf6p9rgntDRKR_yxMN1hK0FgKQge8PU5nUwdW-JXnwVvS_IwYE8/?imgmax=800" width="244" height="208" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlEYSoQmJ8SR7709c5VoIcH85EpXtfhLkRIZe3v8w3hIdNHsYCJueYiCjXVYy_Zt1Mt8IM-vgxYMhQtMHaHSuQcziyJQrERSC-Gz5QEiA2I5u1RfD3IB5IDDsv38BhRyzuV86OsqaZk4A/s1600-h/clip_image012%25255B3%25255D.jpg"><img title="clip_image012" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image012" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcH97ahsDG1Q0xQbAGIoR_nycr3MZe2k-wH8vqikurA0CdlwAraXx_GdkulJMO-RMjY7_TBhhiu_LVK4cg1KNfUgTjpsiURfIaLcmMWnuIrdD_-DNXANp0sS-1PsPLRXFWCIB7q28pBJQ/?imgmax=800" width="244" height="208" /></a></p> <p>Foreach loop setup.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhGkbX7I9hxNJ7E2AmIdgdCmGo-8BQkZiZAlXMfQrfpiZdc7BoKLbnnowOFRjPP9hbCFIiYyqOBIBfySp9MjaTc_tghGw9cCLuu7p8hyphenhyphenri0Wymm0Wozmz4-E67Dy-Zcrqt3PAhRwqQOpY/s1600-h/clip_image014%25255B3%25255D.jpg"><img title="clip_image014" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image014" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiERDCLZebkmU9YfuRiPMMh5311tmK-OqnlcZMdCxOzigBn-tzQzSVGBspURHEk38WEkEpUtEeJbDQv22sUj9WsGeDGgEZsBBulYSG4l1ftHal4EqM0M50ezGbHJFd75WRQvFBgC1aKIc/?imgmax=800" width="244" height="208" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPigZrzJ4TYhS2oHQnW8A2rFYnFMGv3iwWs-AUZJNgYQVIh5viQznm04rnH7FNWCE-e8d6SKzSuQsDHJ17_PS89sxBiqLqge2I21hZ3ubSIXrja6FTXIUWb-oIrHmUrCztPCF25Ib3k8A/s1600-h/clip_image016%25255B3%25255D.jpg"><img title="clip_image016" 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_image016" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXEGN5cooV2UR6m8g2kmz7k-T8La3vKfCQD7PmhmHUXxnzkItnDCYhlk6_pV3BF2ku7UlqQR_84rlU9lQdgi0gneef94o80Q0syPCMR-Pgo65Uqd1BvUtzulb352pYy3m9Dsuh2Exhh98/?imgmax=800" width="244" height="208" /></a></p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com2tag:blogger.com,1999:blog-3998417675939903159.post-69530724147415831592012-11-28T16:14:00.001-08:002012-11-28T16:14:12.986-08:00MDS - Operation is not valid due to the current state of the objec<br />
<div class="MsoNormal">
<a href="http://www.blogger.com/blogger.g?blogID=3998417675939903159" name="_GoBack"></a>If you have a large model and you are
trying edit security settings in MDS(Master Data Services) you may get the
following error:<span style="font-family: 'Times New Roman', serif; font-size: 13.5pt; line-height: 115%;"><o:p></o:p></span></div>
<br /><table border="0" cellpadding="0" style="background: #FFFFFF; width: 100%px;">
<tbody>
<tr>
<td><span style="color: #444444; font-family: 'Courier New'; font-size: 13px;">An unknown error occurred</span>.
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
or<o:p></o:p></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="background: #FFFFFF; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100%px;">
<tbody>
<tr>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">Operation is not valid due to
the current state of the object</span><span style="font-family: "Courier New"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"><o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
or<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 13.5pt;">
<b><span style="font-family: Arial, sans-serif; font-size: 13.5pt;">Description: </span></b><span style="font-family: Arial, sans-serif; font-size: 13.5pt;">An unhandled
exception occurred during the execution of the current web request. Please
review the stack trace for more information about the error and where it
originated in the code.<br />
<br />
<b>Exception Details: </b>System.InvalidOperationException: Operation is
not valid due to the current state of the object.<br />
<br />
<b>Source Error:</b> <o:p></o:p></span></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="background: #FFFFFF; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100%px;">
<tbody>
<tr>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">An unhandled exception was
generated during the execution of the current web request. Information
regarding the origin and location of the exception can be identified using
the exception stack trace below.</span><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"><o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 13.5pt;">
<span style="font-family: Arial, sans-serif; font-size: 13.5pt;"><br />
<b>Stack Trace:</b> <o:p></o:p></span></div>
<table border="0" cellpadding="0" class="MsoNormalTable" style="background: #FFFFFF; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 100%px;">
<tbody>
<tr>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">[InvalidOperationException:
Operation is not valid due to the current state of the object.]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">
System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes,
Encoding encoding) +11371791<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"> System.Web.HttpRequest.FillInFormCollection()
+329<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444;"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">[HttpException (0x80004005):
The URL-encoded form data is not valid.]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">
System.Web.HttpRequest.FillInFormCollection() +11485906<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"> System.Web.HttpRequest.get_Form() +157<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"> System.Web.HttpRequest.get_HasForm()
+11486708<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;">
System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
+141<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #444444; font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"> System.Web.UI.Page.DeterminePostBackMode()
+100<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-AU;"><span style="color: #444444;">
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +259</span><o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<b>Solution</b><o:p></o:p></div>
<div class="MsoNormal">
Thanks to the MS MDS support team you need to add the
following to the web.config file located C:\Program Files\Microsoft SQL
Server\110\Master Data Services\WebApplication<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<configuration><br />
<appSettings><br />
<add key="aspnet:MaxHttpCollectionKeys" value="2000"
/><br />
</appSettings><br />
</configuration><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt; line-height: 115%;">appSettings is located near the end of the file. If the
error is still occurring increase the value 10000<o:p></o:p></span></div>
Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-40391892772499953172012-11-14T19:26:00.001-08:002012-11-14T19:26:11.536-08:00MDS Missing attribute<br />
Tag<br />
Master Data Services<br />
<br />
I had an issue where the subscription view would show all the attributes but when trying to edit the entity in Explorer or System Administration the attribute would not appear.<br />
So started looking at mdm.tblAttribute table and there it was. So then I looked in mdm.viw_SYSTEM_SCHEMA_ATTRIBUTES and it was missing<br />
<br />
<br />
SELECT <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>*<br />
FROM <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>mdm.tblModel tMod <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JOIN mdm.tblEntity tEnt ON tMod.ID = tEnt.Model_ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JOIN mdm.tblAttribute tAtt ON tEnt.ID = tAtt.Entity_ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JOIN mdm.tblEntityMemberType tMemberType ON tAtt.MemberType_ID = tMemberType.ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JOIN mdm.tblList tAttributeType ON tAttributeType.ListCode = N'lstAttributeType' AND tAtt.AttributeType_ID = tAttributeType.OptionID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JOIN mdm.tblList tDataType ON tDataType.ListCode = N'lstDataType' AND tAtt.DataType_ID = tDataType.OptionID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>--JOIN mdm.tblUser usrE ON tAtt.EnterUserID = usrE.ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>--JOIN mdm.tblUser usrL ON tAtt.LastChgUserID = usrL.ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>LEFT OUTER JOIN mdm.tblList tDataMask ON tDataMask.ListCode = N'lstInputMask' AND tAtt.InputMask_ID = tDataMask.OptionID AND tAtt.DataType_ID = tDataMask.Group_ID <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>LEFT OUTER JOIN mdm.tblEntity tDBAEnt ON tAtt.DomainEntity_ID = tDBAEnt.ID<br />
<br />
It turns out I had DELETED all the users from the mdm.tblUser table except for user ID 1. Problem is viw_SYSTEM_SCHEMA_ATTRIBUTES does an INNER JOIN with the tblUser table.<br />
<br />
Run the following to check if there are any issues.<br />
<br />
<br />
SELECT * FROM mdm.tblEntity WHERE<br />
EnterUserID <> 1<br />
OR LastChgUserID <> 1<br />
<br />
SELECT * FROM mdm.tblAttribute WHERE<br />
EnterUserID <> 1<br />
OR LastChgUserID <> 1<br />
<br />
UPDATE mdm.tblAttribute SET EnterUserID = 1, LastChgUserID = 1 WHERE EnterUserID <> 1 OR LastChgUserID <> 1<br />
<br />
<br />
Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-27792221886988348412012-10-11T02:55:00.002-07:002012-10-11T02:55:39.436-07:00MDS Master Data Services 2012 Rename Entity Staging Table<br />
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
DECLARE
@StagingTable NVARCHAR(100) = 'StagingTableOldName'</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
DECLARE
@NewStagingTable NVARCHAR(100) = 'StagingTableNewName'</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
DECLARE @EntityID
INT</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
DECLARE db_cursor
CURSOR FOR </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
SELECT e.ID,
e.StagingBase, @NewStagingTable</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
FROM [mdm].[tblEntity] e</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
INNER JOIN mdm.tblModel m ON e.Model_ID =
m.ID</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
WHERE m.Name = 'MTN'</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
AND e.StagingBase = @StagingTable</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
OPEN db_cursor </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
FETCH NEXT FROM
db_cursor INTO @EntityID, @StagingTable, @NewStagingTable</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
WHILE @@FETCH_STATUS
= 0 </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
BEGIN</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
PRINT '---- ' +
@StagingTable</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'UPDATE mdm.tblEntity SET StagingBase = ' + QUOTENAME(@NewStagingTable, '''') +
' WHERE ID = ' + CAST(@EntityID AS NVARCHAR(10)) </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'DROP PROC stg.udp_' + @StagingTable + '_Leaf'</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'DROP VIEW stg.viw_' + @StagingTable + '_MemberErrorDetails'</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.' + @StagingTable + '_Leaf', '''') + ', ' +
QUOTENAME(@NewStagingTable + '_Leaf', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.' + @NewStagingTable + '_Leaf.pk_' +
@StagingTable+ '_Leaf', '''') + ', ' + QUOTENAME('pk_' + @NewStagingTable +
'_Leaf', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.ck_' + @StagingTable + '_Leaf_ImportType',
'''') + ', ' + QUOTENAME('ck_' + @NewStagingTable + '_Leaf_ImportType', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.ck_' + @StagingTable +
'_Leaf_ImportStatus_ID', '''') + ', ' + QUOTENAME('ck_' + @NewStagingTable +
'_Leaf_ImportStatus_ID', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.' + @NewStagingTable + '_Leaf.ix_' +
@StagingTable + '_Leaf_Batch_ID', '''') + ', ' + QUOTENAME('ix_' +
@NewStagingTable + '_Leaf_Batch_ID', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.' + @NewStagingTable + '_Leaf.ix_' +
@StagingTable + '_Leaf_BatchTag', '''') + ', ' + QUOTENAME('ix_' +
@NewStagingTable + '_Leaf_BatchTag', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
<br /></div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC sp_rename ' + QUOTENAME('stg.df_' + @StagingTable +
'_Leaf_ImportStatus_ID', '''') + ', ' + QUOTENAME('df_' + @NewStagingTable +
'_Leaf_ImportStatus_ID', '''')</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC mdm.udpEntityStagingCreateLeafStoredProcedure ' + CAST(@EntityID AS
NVARCHAR(10)) </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
'EXEC mdm.udpCreateEntityStagingErrorDetailViews ' + CAST(@EntityID AS
NVARCHAR(10))</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
PRINT
''</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;">
FETCH
NEXT FROM db_cursor INTO @EntityID, @StagingTable, @NewStagingTable</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
END</div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
CLOSE db_cursor </div>
<div style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
DEALLOCATE db_cursor</div>
Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com3tag:blogger.com,1999:blog-3998417675939903159.post-83032424202509813902012-08-09T19:56:00.001-07:002012-08-09T19:57:21.166-07:00MDS Checking Users Security SettingsHi,<br />
<br />
Here are some sql scripts that you can run to check the security settings of a user in MDS (Master Data Services).<br />
<br />
<pre class="csharpcode">-----------------------------------------------------------------------------<span class="rem">-- </span>
<span class="rem">-- Model User Security</span>
-----------------------------------------------------------------------------<span class="rem">--</span>
<span class="kwrd">SELECT</span> * <span class="kwrd">FROM</span> mdm.udfSecurityUserModelList(5) ACL
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_MODEL vModel <span class="kwrd">ON</span> ACL.ID = vModel.ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPriv <span class="kwrd">ON</span> tPriv.ID = acl.Privilege_ID
-----------------------------------------------------------------------------<span class="rem">-- </span>
<span class="rem">-- Entity User Security</span>
-----------------------------------------------------------------------------<span class="rem">--</span>
<span class="kwrd">SELECT</span> vEnt.Model_ID,vEnt.Model_Name,
acl.ID <span class="kwrd">AS</span> <span class="str">'Entity_ID'</span>, vEnt.Name <span class="kwrd">AS</span> <span class="str">'Entity_Name'</span>, tPriv.Code
<span class="kwrd">FROM</span> mdm.udfSecurityUserEntityList(5, <span class="kwrd">NULL</span>) acl
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_ENTITY vEnt <span class="kwrd">ON</span> acl.ID = vEnt.ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPriv <span class="kwrd">ON</span> tPriv.ID = acl.Privilege_ID
<span class="kwrd">ORDER</span> <span class="kwrd">BY</span> vEnt.Model_ID, vEnt.Name
-----------------------------------------------------------------------------<span class="rem">-- </span>
<span class="rem">-- Attribute Group User Security</span>
-----------------------------------------------------------------------------<span class="rem">--</span>
<span class="kwrd">SELECT</span> *
<span class="kwrd">FROM</span> mdm.udfSecurityUserAttributeGroupList(5, 4,149,1) acl
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_ATTRIBUTEGROUPS vAG <span class="kwrd">ON</span> acl.ID = vAG.ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPriv <span class="kwrd">ON</span> tPriv.ID = acl.Privilege_ID
<span class="kwrd">ORDER</span> <span class="kwrd">BY</span> vAG.Model_ID, vAG.Name
-----------------------------------------------------------------------------<span class="rem">-- </span>
<span class="rem">-- Attribute Group Attribute List User Security</span>
-----------------------------------------------------------------------------<span class="rem">--</span>
<span class="kwrd">SELECT</span> acl.USER_ID, acl.Model_ID, vAG.Model_Name, acl.Entity_ID,
vAG.Entity_Name, acl.Privilege_ID, tPriv.Code <span class="kwrd">AS</span> <span class="str">'SecurityAttributeGroup_Code'</span>,
vAG.ID <span class="kwrd">AS</span> <span class="str">'AttributeGroup_ID'</span>, vAG.Name <span class="kwrd">AS</span> <span class="str">'AttributeGroup_Name'</span>,
vAGA.Attribute_ID,vAGA.Attribute_Name, tPrivA.Code <span class="kwrd">AS</span> <span class="str">'SecurityAttribute_Code'</span>
<span class="kwrd">FROM</span> mdm.udfSecurityUserAttributeGroupList(1, 4,149,1) acl
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPriv <span class="kwrd">ON</span> tPriv.ID = acl.Privilege_ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_ATTRIBUTEGROUPS vAG <span class="kwrd">ON</span> acl.ID = vAG.ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_ATTRIBUTEGROUPS_ATTRIBUTES vAGA <span class="kwrd">ON</span> vAG.ID = vAGA.AttributeGroup_ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.udfSecurityUserAttributeList(1, 4,149,1) acla <span class="kwrd">ON</span> acla.ID = vAGA.Attribute_ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPrivA <span class="kwrd">ON</span> tPrivA.ID = acla.Privilege_ID
<span class="kwrd">ORDER</span> <span class="kwrd">BY</span> vAG.Model_ID, vAG.Name
-----------------------------------------------------------------------------<span class="rem">-- </span>
<span class="rem">-- Attribute List User Security</span>
-----------------------------------------------------------------------------<span class="rem">--</span>
<span class="kwrd">SELECT</span> va.Model_ID, va.Model_Name, va.Entity_ID, va.Entity_Name,
va.Attribute_ID, va.Attribute_Name, tPrivA.Code <span class="kwrd">AS</span> <span class="str">'Security_Code'</span>
<span class="kwrd">FROM</span> mdm.udfSecurityUserAttributeList(5, 4,149,1) acla
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.viw_SYSTEM_SCHEMA_ATTRIBUTES vA <span class="kwrd">ON</span> acla.ID = vA.Attribute_ID
<span class="kwrd">INNER</span> <span class="kwrd">JOIN</span> mdm.tblSecurityPrivilege tPrivA <span class="kwrd">ON</span> tPrivA.ID = acla.Privilege_ID
<span class="kwrd">ORDER</span> <span class="kwrd">BY</span> vA.Model_ID, vA.Entity_Name, vA.Attribute_Name
</pre>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-5872677261566242682012-05-26T22:01:00.001-07:002012-05-26T22:01:40.069-07:00MDS .net Assembly Error "The Microsoft SQL Server license has expired"<br />
I was trying to get MDS assemblies going.<br />
<br />
File Program.cs<br />
<br />
using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Runtime.InteropServices;<br />
using System.Text;<br />
using System.Collections.ObjectModel;<br />
using Microsoft.MasterDataServices.Deployment;<br />
using Microsoft.MasterDataServices.Services.DataContracts;<br />
<br />
namespace ConsoleApplication1<br />
{<br />
class Program<br />
{<br />
static void Main(string[] args)<br />
{<br />
try<br />
{<br />
//Reads a model's metadata, business rules, and master data<br />
ModelReader reader = new ModelReader();<br />
<br />
Console.WriteLine(reader.CurrentUser.DisplayName);<br />
Console.WriteLine("Models:");<br />
Collection<identifier> models = reader.GetModels();<br />
foreach (Identifier modelId in models)<br />
{<br />
Console.WriteLine(modelId.Name);<br />
}<br />
}<br />
catch(System.Exception ex)<br />
{<br />
Console.WriteLine("Error: " + ex.Message);<br />
<br />
}<br />
Console.ReadKey();<br />
}<br />
}<br />
}<br />
<br />
App.Config<br />
<br />
<configuration><br />
<configsections><br />
</configsections><br />
<connectionstrings><br />
<add connectionstring="Data Source=localhost;Initial Catalog=MDS_2012;Integrated Security=True" name="defaultMdsConnection" providername="System.Data.SqlClient"><br />
</add></connectionstrings><br />
</configuration><br />
<br />
referencing the following assemblies from<br />
C:\Program Files\Microsoft SQL Server\110\Master Data Services\WebApplication\bin<br />
Microsoft.MasterDataServices.Core<br />
Microsoft.MasterDataServices.Deployment<br />
Microsoft.MasterDataServices.Services<br />
Microsoft.MasterDataServices.Services.Contracts<br />
<br />
When running the app I get the following error:<br />
Olof Szymczak<br />
Models:<br />
Error: The Microsoft SQL Server license has expired.<br />
<br />
<br />
When using reflector, I find that the following method throws the error<br />
File: Services.cs<br />
Namespace: namespace Microsoft.MasterDataServices.Services<br />
Method:<br />
private static void CheckExpiration()<br />
{<br />
if (isExpired)<br />
{<br />
Microsoft.MasterDataServices.Core.Log.Write(LogMessageType.Error, "Evaluation period has expired.");<br />
EditionExpiredMessage detail = new EditionExpiredMessage();<br />
FaultException<editionexpiredmessage> exception = new FaultException<editionexpiredmessage>(detail, ErrorStrings.EvaluationExpired);<br />
throw exception;<br />
}<br />
}<br />
<br />
It looks like isExpired is set to true. So I looked for the method that is setting isExpired. Drilling in that method I find:<br />
File: Utility.cs<br />
Namespace: Microsoft.MasterDataServices.Core.BusinessEntities<br />
Method: private static QuerySkuValue LoadQuerySkuValueMethod()<br />
in the method it is trying to load a dll C:\Program Files\Microsoft SQL Server\110\Shared\sqlboot.dll<br />
zero = LoadLibraryW(dllname); //this fails to load the dll<br />
<br />
Checked the location and the dll exists.<br />
<br />
Note if I set isExpired = false while debugging the code. I get the correct results.<br />
<br />
Eventually I found the answer after downloading http://archive.msdn.microsoft.com/ModelDApiSample, modifing it to point to the MDS 2012 assemblies and reconfiguring the config file. I run it and it worked, I was going WTF. So I checked what was wrong with my project settings, the answer x86, the project.Build.Platform target has to be set to either x64 or Any CPU.<br />
<br />
All I can say is what a great way of telling you, that you have compiled the code for the wrong platform by returning an error of "The Microsoft SQL Server license has expired".<br />Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-49259267142320106472012-04-27T09:59:00.001-07:002012-04-27T15:26:20.596-07:00Install MDS on the ExtranetHi,<br />
I had to install MDS portal on the extranet (DMZ) and MDS database on the intranet. Here are some of the issues that I encountered.
<h3>
Setup</h3>
<strong>DomainA (Intranet/Internal)</strong>
ServerA SqlServer 2008 R2/2012<br />
<b>Firewall</b>
Firewall rule to let sql connection through. No Federated Domain<br />
<b>DomainB (Extranet/DMZ)
</b>ServerB IIS 7.5 make sure that IIS and WCF is installed correctly<br />
<h3><b>Creating the database</b></h3>
Since I can't use <span style="font-weight: bold;">Current User - Integrated Security</span> I have to switch to SQL Server Account. Make sure that you create a sql login user with sufficient rights to create the database.<br />
<h3 style="font-weight: bold;">Creating Website</h3>
Everything works fine until you try to connect the database to the portal. You will get the following error:<br />
Service Account Failure User or Role '(null)' does not exist in this database.<br />
No problem you have to go the web.config file and add the settings manually. In this example I have added 2 sites dev and test<br />
<pre class="csharpcode" style="font-weight: bold;">...
... <span class="kwrd"><</span><span class="html">masterDataServices</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">instance</span> <span class="attr">virtualPath</span><span class="kwrd">=""</span> <span class="attr">siteName</span><span class="kwrd">="MDS_MTN_DEV"</span> <span class="attr">connectionName</span><span class="kwrd">="MDS1"</span> <span class="attr">serviceName</span><span class="kwrd">="MDS1"</span> <span class="kwrd">/></span>
<span class="kwrd"><</span><span class="html">instance</span> <span class="attr">virtualPath</span><span class="kwrd">=""</span> <span class="attr">siteName</span><span class="kwrd">="MDS_MTN_TEST"</span> <span class="attr">connectionName</span><span class="kwrd">="MDS2"</span> <span class="attr">serviceName</span><span class="kwrd">="MDS2"</span> <span class="kwrd">/></span>
<span class="kwrd"></</span><span class="html">masterDataServices</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">connectionStrings</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="MDS1"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=[ServerNameOrServerIP];Initial Catalog=mds;User Id=[username];Password=[password];Connect Timeout=60"</span> <span class="kwrd">/></span>
<span class="kwrd"><</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">="MDS2"</span> <span class="attr">connectionString</span><span class="kwrd">="Data Source=[ServerNameOrServerIP];Initial Catalog=mds_test;User Id=[username];Password=[password];Connect Timeout=60"</span> <span class="kwrd">/></span>
<span class="kwrd"></</span><span class="html">connectionStrings</span><span class="kwrd">></span>
...
...
<span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="mdsWsHttpBehavior"</span> <span class="attr">name</span><span class="kwrd">="MDS1"</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">binding</span><span class="kwrd">="wsHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="mdsWsHttpBinding"</span>
<span class="attr">bindingNamespace</span><span class="kwrd">="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"</span>
<span class="attr">contract</span><span class="kwrd">="Microsoft.MasterDataServices.Services.ServiceContracts.IService"</span> <span class="kwrd">/></span>
<span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="bhb"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="mdsBasicHttpBinding"</span>
<span class="attr">bindingNamespace</span><span class="kwrd">="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"</span>
<span class="attr">contract</span><span class="kwrd">="Microsoft.MasterDataServices.Services.ServiceContracts.IService"</span> <span class="kwrd">/></span>
<span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">service</span> <span class="attr">behaviorConfiguration</span><span class="kwrd">="mdsWsHttpBehavior"</span> <span class="attr">name</span><span class="kwrd">="MDS2"</span><span class="kwrd">></span>
<span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">binding</span><span class="kwrd">="wsHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="mdsWsHttpBinding"</span>
<span class="attr">bindingNamespace</span><span class="kwrd">="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"</span>
<span class="attr">contract</span><span class="kwrd">="Microsoft.MasterDataServices.Services.ServiceContracts.IService"</span> <span class="kwrd">/></span>
<span class="kwrd"><</span><span class="html">endpoint</span> <span class="attr">address</span><span class="kwrd">="bhb"</span> <span class="attr">binding</span><span class="kwrd">="basicHttpBinding"</span> <span class="attr">bindingConfiguration</span><span class="kwrd">="mdsBasicHttpBinding"</span>
<span class="attr">bindingNamespace</span><span class="kwrd">="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"</span>
<span class="attr">contract</span><span class="kwrd">="Microsoft.MasterDataServices.Services.ServiceContracts.IService"</span> <span class="kwrd">/></span>
<span class="kwrd"></</span><span class="html">service</span><span class="kwrd">></span>
...
...</pre>
If you close and reopen Master Data Services Configuration Manager and go the website you will see that the website is now connected to the database.<br />
<h3 style="font-weight: bold;">Testing the MDS Portal</h3>
When viewing an entity in explorer you may get the following errors:<br />
<strong style="font-weight: bold;">IE8</strong><b> Error Message</b>
[HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavaialble. Often the key and argumetns provide sufficient information to diagnose the problem. See
<a href="http://go.microsoft.com/fwlink/linkid=1066638&Version5.0.61118.08&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer">http://go.microsoft.com/fwlink/linkid=1066638&Version5.0.61118.08&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer</a><br />
<strong style="font-weight: bold;">IE9</strong><b>
</b>The remote server returned an error: NotFound.<br />
<h3 style="font-weight: bold;">Testing the MDS Service</h3>
Check Authorization on the Portal and Service in IIS
Portal – Windows Authentication Enabled
Service – Anonymous Authentication Enabled and Windows Authentication Enabled
You may need to do an IISRESET.
<a href="http://localhost/service/service.svc" title="http://localhost:10120/service/service.svc">http://localhost/service/service.svc</a><br />
<b>Error Message for Anonymous</b> Authentication not enabled
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service. <b>
Error Message for Windows Authentication</b> not enabled
Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.<br />
<b>Error Message:</b>
The HttpsGetEnabled property of ServiceMetadataBehavior is set to true and the HttpsGetUrl property is a relative address, but there is no https base address. Either supply an https base address or set HttpsGetUrl to an absolute address.<br />
Change the web.config file to the following if only using http
httpsGetEnabled="false"<br /><serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/><br />
After all that it works!!!Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-58827860144449695082012-03-31T03:53:00.000-07:002012-11-14T19:18:55.551-08:00MDSModelDeploy.exe Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.<br />
<div class="MsoNormal">
I was trying to automate the creation and deployment of my MDS model and came across the following issue.<br />
<br />
If you try to run the following powershell command </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="color: cadetblue; font-family: "Courier New"; font-size: 8pt;">invoke-command</span></b><span style="font-family: "Courier New"; font-size: 8pt;"> </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 8pt;">-computername</span></i><span style="font-family: "Courier New"; font-size: 8pt;"> Servername </span><i><span style="color: cadetblue; font-family: "Courier New"; font-size: 8pt;">-scriptblock</span></i><span style="font-family: "Courier New"; font-size: 8pt;"> {& </span><span style="color: maroon; font-family: "Courier New"; font-size: 8pt;">'C:\Program Files\Microsoft SQL Server\110\Master Data Services\Configuration\MDSModelDeploy.exe'</span><span style="font-family: "Courier New"; font-size: 8pt;"> createpackage -model TestModel -package c:\Data\LocalBackup\TestModelackage.pkg -version VERSION_1 -service MDS2 -includedata}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
you get the following error</div>
<div class="MsoNormal">
Creating a package for model MTN</div>
<div class="MsoNormal">
MDSModelDeploy operation failed. Elapsed time: 00:00:06.4551044</div>
<div class="MsoNormal">
Error:</div>
<div class="MsoNormal">
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I enabled trace on MDSModelDeploy</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<b><span style="font-size: 14pt;">Error Log</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Information: 0 : Attempting to execute command: MDSModelDeploy createpackage -model TestModel -package c:\Data\</span></b><b><span style="font-size: 10pt;">LocalBackup\TestModelackage.pkg -version</span></b><b><span style="font-size: 10pt;"> VERSION_1 -service MDS2 -includedata</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:02.3896659Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Error: 0 : Service started successfully, Assembly version: 11.0.0.0, file version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.6863285Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Error: 0 : ApiContractVersion: 5102</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.6863285Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Start: 1 : Service.InitializeExpirationStatus</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.6863285Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Information: 0 : Evaluation period days remaining code: 0</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.7488269Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Stop: 2 : Service.InitializeExpirationStatus</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.7488269Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Start: 1 : Deployment: getting list of models</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.7644515Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Start: 1 :</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> Begin operation: ExecuteRequest</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> Host info: Microsoft.MasterDataServices.Core.ExplicitHostContext</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> User Name: Domain\username</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> Time: 03/31/2012 21:35:10</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:10.9050729Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Verbose: 0 : Request message:</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"><MetadataGetRequest xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MasterDataServices.Services.MessageContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <International i:nil="true" xmlns:a="http://www.w3.org/2005/09/ws-i18n" /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <ResultOptions xmlns:a="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Models>Identifiers</a:Models></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> </ResultOptions></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <SearchCriteria xmlns:a="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:AttributeGroups /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Attributes /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:DerivedHierarchies /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:DerivedHierarchyLevels /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Entities /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:ExplicitHierarchies /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:MemberTypes /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Models /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:VersionFlags /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Versions /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> </SearchCriteria></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"></MetadataGetRequest></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.0613189Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Start: 1 : RequestContext.InitializeRequestContext</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.0613189Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Start: 1 : RequestContext.InitializeDatabaseContext</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.0613189Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Stop: 2 :</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> End operation: MetadataGet</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> Host info: Microsoft.MasterDataServices.Core.ExplicitHostContext</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> User Name: [Domain]\[Username]</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> Time: 03/31/2012 21:35:11</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.2956879Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Verbose: 0 : Response message:</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"><MetadataGetResponse xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MasterDataServices.Services.MessageContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <OperationResult xmlns:a="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Errors /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:RequestId>d8cedd0f-34cd-4b43-b43b-e0fd860bb44d</a:RequestId></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> </OperationResult></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <Metadata xmlns:a="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09"></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:AttributeGroups /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Attributes /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:DerivedHierarchies /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:DerivedHierarchyLevels /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Entities /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:ExplicitHierarchies /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:MemberTypes /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Models /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:VersionFlags /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> <a:Versions /></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> </Metadata></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"></MetadataGetResponse></span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.4206847Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Error: 0 :</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.4206847Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Error: 0 : MDSModelDeploy operation failed. Elapsed time: 00:00:09.1523012</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.4206847Z</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;">MDS Error: 0 : Error:</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.4206847Z</span></b></div>
<div class="MsoNormal">
<b><span style="color: red; font-size: 12pt;">MDS Error: 0 : System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.ExecuteNonQueryHandlingTransportError(SqlCommand sqlCommand)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.GetTimeout(String settingName)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Core.DataAccess.DbHelper.SetConnection(String connectionString)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext.InitializeDatabaseContext()</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext.InitializeRequestContext(HostContext hostContext)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Services.Service.MetadataGet(MetadataGetRequest request)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.WebUI.ServiceAdapter.ExecuteRequest[TRequestType,TResponseType](MdmServiceOperation`2 operation, TRequestType request)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.WebUI.ServiceAdapter.DoMetadataGet(MetadataSearchCriteria searchCriteria, MetadataResultOptions resultOptions)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Deployment.ModelReader.GetModels(Boolean isAdminOnly)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Deployment.Utility.ModelDeploy.CreatePackage(String serviceName, String packageFile, String modelName, String versionName, Boolean includeData)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> at Microsoft.MasterDataServices.Deployment.Utility.ModelDeploy.Main(String[] args)</span></b></div>
<div class="MsoNormal">
<b><span style="font-size: 10pt;"> DateTime=2012-03-31T10:35:11.4206847Z</span></b></div>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">After using reflector I managed to find the code that is causing the issue</span></div>
<pre><span style="color: #1000a0;">private</span> <a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.Void" title="System.Void
CTRL+Click to open in new tab.">void</a> <b><a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext/InitializeRequestContext(Microsoft.MasterDataServices.Core.HostContext)">InitializeRequestContext</a></b>(<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.HostContext" title="Microsoft.MasterDataServices.Core.HostContext
CTRL+Click to open in new tab.">HostContext</a> hostContext)</pre>
<pre>{</pre>
<pre> <a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.Log" title="Microsoft.MasterDataServices.Core.Log
CTRL+Click to open in new tab.">Log</a>.<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.Log/WriteStart(String)" title="void Microsoft.MasterDataServices.Core.Log.WriteStart(string message);
CTRL+Click to open in new tab.">WriteStart</a>(<span style="color: maroon;">"RequestContext.InitializeRequestContext"</span>);</pre>
<pre> <span style="color: #1000a0;">if</span> (hostContext == <span style="color: maroon;">null</span>)</pre>
<pre> {</pre>
<pre> <span style="color: #1000a0;">throw</span> <span style="color: #1000a0;">new</span> <a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://mscorlib:4.0.0.0:b77a5c561934e089/System.ArgumentNullException/.ctor(String)" title="System.ArgumentNullException.ArgumentNullException(string);
CTRL+Click to open in new tab.">ArgumentNullException</a>(<span style="color: maroon;">"hostContext"</span>);</pre>
<pre> }</pre>
<pre> <span style="color: #1000a0;">this</span>.<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext/property:HostContext:Microsoft.MasterDataServices.Core.HostContext" title="HostContext Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext.HostContext { ... }
CTRL+Click to open in new tab.">HostContext</a> = hostContext;</pre>
<pre> <span style="color: #1000a0;">this</span>.<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext/InitializeDatabaseContext()" title="void Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext.InitializeDatabaseContext();
CTRL+Click to open in new tab.">InitializeDatabaseContext</a>();</pre>
<pre> <span style="color: #1000a0;">this</span>.<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext/InitializeCurrentUser()" title="void Microsoft.MasterDataServices.Core.BusinessEntities.RequestContext.InitializeCurrentUser();
CTRL+Click to open in new tab.">InitializeCurrentUser</a>();</pre>
<pre> <a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.Log" title="Microsoft.MasterDataServices.Core.Log
CTRL+Click to open in new tab.">Log</a>.<a href="http://127.0.0.1/roeder/dotnet/Default.aspx?Target=code://Microsoft.MasterDataServices.Core:11.0.0.0:89845dcd8080cc91/Microsoft.MasterDataServices.Core.Log/WriteStop(String)" title="void Microsoft.MasterDataServices.Core.Log.WriteStop(string message);
CTRL+Click to open in new tab.">WriteStop</a>(<span style="color: maroon;">"RequestContext.InitializeRequestContext"</span>);</pre>
<pre>}</pre>
<div class="MsoNormal">
<span style="font-size: 10pt;">Not sure if calling InitializeCurrentUser before InitializeDatabaseContext will fix the problem. As I didn’t have to time to decompile all the MDS code and try to get it to compile.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-size: 14pt;">Work around</span></b></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Is to set the connection string to sql login instead of Integrated Security</span></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">from <add name="MDS2" connectionString="Data Source=servername;Initial Catalog=database;Integrated Security=True;Connect Timeout=60" /></span></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">to <add name="MDS2" connectionString="Data Source=servername;Initial Catalog=database;User Id=sqlloginuser;Password=password;Connect Timeout=60" /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To test that winrm is working correctly run the following command </div>
<div class="MsoNormal">
invoke-command -computername yourserver -scriptblock {& 'C:\Program Files\Microsoft SQL Server\110\Master Data Services\Configuration\MDSModelDeploy.exe' listservices}</div>
<div class="MsoNormal">
Result</div>
<div class="MsoNormal">
MDS services (Service, Website, Virtual Path):</div>
<div class="MsoNormal">
MDS1, Website1_DEV,</div>
<div class="MsoNormal">
MDS2, Website2_DEV,</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
MDSModelDeploy operation completed successfully. Elapsed time: 00:00:06.7047133</div>
Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-77764687167862456992012-03-14T16:40:00.002-07:002012-03-14T16:44:30.268-07:00MDS (Master Data Services) SQL 2012 installing on SQL 2008 R2MDS (Master Data Services) SQL 2012 is out with new enhancements to make development a lot easier. The issue is, is business ready to move to SQL 2012... So I took a shot and tried installing MDS SQL 2012 on SQL 2008 R2 instance.<br />
Steps <br />
1. install MDS SQL 2012 from ISO<br />
2.Run Microsoft SQL Server 2012\Master Data Services\Master Data Services Configuration Manager.exe<br />
3. Create new database point to SQL 2008 R2 instance.<br />
4. Create new Web page<br />
<br />
Everything run smoothly and portal came up.<br />
<br />
<a href="http://msdn.microsoft.com/en-us/library/gg488708(v=sql.110).aspx#noengine">http://msdn.microsoft.com/en-us/library/gg488708(v=sql.110).aspx#noengine</a>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-78098131173051361562012-03-08T22:32:00.002-08:002012-03-08T22:33:33.059-08:00Master Data Services (MDS) Clean Model of Carriage Return and New line<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @sqlquery <span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>4000<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> RemoveCr <span style="color: blue;">CURSOR</span> <span style="color: blue;">FOR<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SELECT</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">DISTINCT</span> <span style="color: green;">--m.Name, e.Name,
e.EntityTable, a.DisplayName,a.TableColumn, e.*,<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: red; font-family: 'Courier New'; font-size: 10pt;">'UPDATE mdm.'</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">+</span> e<span style="color: grey;">.</span>EntityTable <span style="color: grey;">+</span> <span style="color: red;">' SET '</span> <span style="color: grey;">+</span> a<span style="color: grey;">.</span>TableColumn <span style="color: grey;">+</span> <span style="color: red;">' = SUBSTRING('</span> <span style="color: grey;">+</span> a<span style="color: grey;">.</span>TableColumn <span style="color: grey;">+</span> <span style="color: red;">', 0, CHARINDEX ( CHAR(13),
'</span> <span style="color: grey;">+</span> a<span style="color: grey;">.</span>TableColumn
<span style="color: grey;">+</span> <span style="color: red;">' ) ) WHERE '</span> <span style="color: grey;">+</span> a<span style="color: grey;">.</span>TableColumn <span style="color: grey;">+</span> <span style="color: red;">' LIKE ''%'' + CHAR(13) +
CHAR(10)+ ''%'''<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">--'SELECT ' +
a.TableColumn + ' FROM mdm.' + e.EntityTable + ' WHERE ' + a.TableColumn + '
LIKE ''%'' + CHAR(13) + CHAR(10)+ ''%'''<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">FROM</span><span style="font-family: 'Courier New'; font-size: 10pt;"> mdm<span style="color: grey;">.</span>tblEntity e<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">INNER</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblModel m <span style="color: blue;">ON</span> e<span style="color: grey;">.</span>Model_ID <span style="color: grey;">=</span> m<span style="color: grey;">.</span>ID<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">INNER</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblModelVersion
mv <span style="color: blue;">ON</span> m<span style="color: grey;">.</span>ID <span style="color: grey;">=</span> mv<span style="color: grey;">.</span>Model_ID<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">INNER</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblAttribute
a <span style="color: blue;">ON</span> a<span style="color: grey;">.</span>Entity_ID
<span style="color: grey;">=</span> e<span style="color: grey;">.</span>ID<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">INNER</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblList lAtt
<span style="color: blue;">ON</span> a<span style="color: grey;">.</span>AttributeType_ID
<span style="color: grey;">=</span> lAtt<span style="color: grey;">.</span>OptionID
<span style="color: grey;">AND</span> lAtt<span style="color: grey;">.</span>ListCode
<span style="color: grey;">=</span> <span style="color: red;">'lstAttributeType'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">INNER</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblList lDat
<span style="color: blue;">ON</span> a<span style="color: grey;">.</span>DataType_ID
<span style="color: grey;">=</span> lAtt<span style="color: grey;">.</span>OptionID
<span style="color: grey;">AND</span> lDat<span style="color: grey;">.</span>ListCode
<span style="color: grey;">=</span> <span style="color: red;">'lstDataType'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">WHERE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> m<span style="color: grey;">.</span>Name <span style="color: grey;"><></span> <span style="color: red;">'Metadata'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">AND</span><span style="font-family: 'Courier New'; font-size: 10pt;"> mv<span style="color: grey;">.</span>Name <span style="color: grey;">=</span> <span style="color: red;">'VERSION_1'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">AND</span><span style="font-family: 'Courier New'; font-size: 10pt;"> lAtt<span style="color: grey;">.</span>ListOption <span style="color: grey;"><></span> <span style="color: red;">'System'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">AND</span><span style="font-family: 'Courier New'; font-size: 10pt;"> lDat<span style="color: grey;">.</span>ListOption <span style="color: grey;">=</span> <span style="color: red;">'Text'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">AND</span><span style="font-family: 'Courier New'; font-size: 10pt;"> IsBase <span style="color: grey;">=</span> 0<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">OPEN</span><span style="font-family: 'Courier New'; font-size: 10pt;"> RemoveCr<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">FETCH</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">NEXT</span> <span style="color: blue;">FROM</span> RemoveCr <span style="color: blue;">INTO</span> @sqlquery<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">WHILE </span><span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">(</span><span style="color: magenta; font-family: 'Courier New'; font-size: 10pt;">@@FETCH_STATUS</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: grey;">=</span> 0<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">BEGIN<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">EXEC</span><span style="color: grey;">(</span>@sqlquery<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">FETCH</span> <span style="color: blue;">NEXT</span> <span style="color: blue;">FROM</span> RemoveCr <span style="color: blue;">INTO</span> @sqlquery<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">END<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">CLOSE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> RemoveCr<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">DEALLOCATE</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> RemoveCr</span></div>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-67422595085614568442012-03-08T22:30:00.002-08:002012-03-08T22:33:19.122-08:00Master Data Services (MDS) Moving Subscription Views<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">NOCOUNT</span> <span style="color: blue;">ON<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">-------------------------------------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">-- Change the
following variables<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">-------------------------------------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @Server <span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>100<span style="color: grey;">)</span> <span style="color: grey;">=</span> <span style="color: red;">'SERVERNAME'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @OrginalDatabase
<span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>100<span style="color: grey;">)</span> <span style="color: grey;">=</span> <span style="color: red;">'MDSDev'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;">
@DestinationDatabase <span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>100<span style="color: grey;">)</span> <span style="color: grey;">=</span> <span style="color: red;">'MDSProd'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">-------------------------------------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">-------------------------------------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @execQuery
<span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>1000<span style="color: grey;">)</span> <span style="color: grey;">=</span> <span style="color: red;">'SELECT * INTO ##Views FROM OPENROWSET(''SQLNCLI'',
''server='</span> <span style="color: grey;">+</span> @Server <span style="color: grey;">+</span> <span style="color: red;">';trusted_connection=yes'',
''set fmtonly off exec '</span> <span style="color: grey;">+</span>
@OrginalDatabase <span style="color: grey;">+</span> <span style="color: red;">'.[mdm].[udpSubscriptionViewGet]'')'<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">EXEC</span><span style="color: grey; font-family: 'Courier New'; font-size: 10pt;">(</span><span style="font-family: 'Courier New'; font-size: 10pt;">@execQuery<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @View_Name
<span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>200<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;">
@Model_Name <span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>200<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;">
@Entity_Name <span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>200<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: blue;">NVARCHAR</span><span style="color: grey;">(</span>4000<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DECLARE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> db_Cursor <span style="color: blue;">CURSOR</span> <span style="color: blue;">FOR</span> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SELECT</span><span style="font-family: 'Courier New'; font-size: 10pt;"> View_Name<span style="color: grey;">,</span> Model_Name<span style="color: grey;">,</span>
Entity_Name <span style="color: blue;">FROM</span> ##Views<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">OPEN</span><span style="font-family: 'Courier New'; font-size: 10pt;"> db_Cursor <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">FETCH</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">NEXT</span> <span style="color: blue;">FROM</span> db_Cursor <span style="color: blue;">INTO</span> @View_Name<span style="color: grey;">,</span>
@Model_Name<span style="color: grey;">,</span> @Entity_Name <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">WHILE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: magenta;">@@FETCH_STATUS</span> <span style="color: grey;">=</span> 0
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">BEGIN</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: red;">''<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: red;">'DECLARE @EntityName
NVARCHAR(200) = '''</span> <span style="color: grey;">+</span> @Entity_Name <span style="color: grey;">+</span> <span style="color: red;">''''</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @ModelName
NVARCHAR(200) = '''</span> <span style="color: grey;">+</span> @Model_Name <span style="color: grey;">+</span> <span style="color: red;">''''</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @Entity_ID int'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @Model_ID int'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @ModelVersion_ID
int'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE
@ModelVersionFlag_ID int'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @Return_ID int'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'DECLARE @Return_MUID
uniqueidentifier'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'SELECT @Model_ID = m.id,
@Entity_ID=e.ID, @ModelVersion_ID = mv.ID, @ModelVersionFlag_ID =
mv.VersionFlag_ID FROM mdm.tblModel m'</span> <span style="color: grey;">+</span>
<span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'INNER JOIN mdm.tblEntity e
ON m.ID = e.Model_ID'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'INNER JOIN
mdm.tblModelVersion mv ON m.ID = mv.Model_ID'</span> <span style="color: grey;">+</span>
<span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'WHERE mv.Name =
''VERSION_1'''</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'AND m.NAME = @ModelName'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'AND e.Name = @EntityName'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'EXECUTE ['</span> <span style="color: grey;">+</span> @DestinationDatabase <span style="color: grey;">+</span>
<span style="color: red;">'].[mdm].[udpSubscriptionViewSave]'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'@SubscriptionView_ID=NULL'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@Entity_ID = @Entity_ID'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@Model_ID = @Model_ID'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@DerivedHierarchy_ID =
NULL'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@ModelVersion_ID =
@ModelVersion_ID '</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@ModelVersionFlag_ID =
@ModelVersionFlag_ID'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@ViewFormat_ID = 1'</span>
<span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@Levels = NULL'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@SubscriptionViewName =
'''</span> <span style="color: grey;">+</span> @View_Name <span style="color: grey;">+</span> <span style="color: red;">''''</span> <span style="color: grey;">+</span>
<span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@Return_ID = @Return_ID
OUTPUT'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">',@Return_MUID =
@Return_MUID OUTPUT'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SET</span><span style="font-family: 'Courier New'; font-size: 10pt;"> @query <span style="color: grey;">=</span> <span style="color: grey;">+</span> @query <span style="color: grey;">+</span> <span style="color: red;">'GO'</span> <span style="color: grey;">+</span> <span style="color: blue;">CHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">PRINT</span> @query<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">FETCH</span> <span style="color: blue;">NEXT</span>
<span style="color: blue;">FROM</span> db_Cursor <span style="color: blue;">INTO</span>
@View_Name<span style="color: grey;">,</span> @Model_Name<span style="color: grey;">,</span>
@Entity_Name <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">END</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">CLOSE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> db_Cursor <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DEALLOCATE</span><span style="font-family: 'Courier New'; font-size: 10pt;"> db_Cursor <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">DROP</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: blue;">TABLE</span> ##Views<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">GO<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-525488329397729982012-03-08T22:26:00.002-08:002012-03-08T22:33:47.714-08:00Master Data Services (MDS) Rebuild Subscription Views<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">--Build Delete
Statements<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SELECT</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: red;">'EXEC mdm.udpSubscriptionViewDeleteByID @ID='</span> <span style="color: grey;">+</span> <span style="color: magenta;">CONVERT</span><span style="color: grey;">(</span><span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">),</span> ID<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">' ,@DeleteView=1'</span> <span style="color: blue;">FROM</span>
mdm<span style="color: grey;">.</span>tblSubscriptionView <span style="color: blue;">WHERE</span> IsDirty
<span style="color: grey;">=</span> 1<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: green; font-family: 'Courier New'; font-size: 10pt;">--Build Create
Statements<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: 'Courier New'; font-size: 10pt;">SELECT</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: red;">'EXEC mdm.udpSubscriptionViewSave
@SubscriptionView_ID=NULL,@Entity_ID='</span>
<span style="color: grey;">+</span> <span style="color: magenta;">CONVERT</span><span style="color: grey;">(</span><span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">),</span> Entity_ID<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">',@Model_ID='</span> <span style="color: grey;">+</span> <span style="color: magenta;">CONVERT</span><span style="color: grey;">(</span><span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">),</span> Model_ID<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">',@DerivedHierarchy_ID=NULL,@ModelVersion_ID='</span> <span style="color: grey;">+</span> <span style="color: magenta;">CONVERT</span><span style="color: grey;">(</span><span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">),</span> ModelVersion_ID<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">',@ModelVersionFlag_ID=NULL,@ViewFormat_ID='</span> <span style="color: grey;">+</span> <span style="color: magenta;">CONVERT</span><span style="color: grey;">(</span><span style="color: blue;">VARCHAR</span><span style="color: grey;">(</span>10<span style="color: grey;">),</span> ViewFormat_ID<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">',@Levels=NULL,@SubscriptionViewName=N'''</span>
<span style="color: grey;">+</span> Name <span style="color: grey;">+</span> <span style="color: red;">''''</span> <span style="color: blue;">FROM</span> mdm<span style="color: grey;">.</span>tblSubscriptionView
<span style="color: blue;">WHERE</span> IsDirty <span style="color: grey;">=</span>
1<o:p></o:p></span></div>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-85434423371904888062011-11-16T22:32:00.001-08:002012-04-08T23:06:13.841-07:00Master Data Services (MDS) error ERR210055 and how to solve it<br />
<div class="MsoNormal">
If you are me you try to do things differently, most of the time they work out on this occasion something went wrong.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
MDS Interface does not let you change the length of an member (Free Text) once you have created. If you know the structure of MDS and how it works you can go to the table in this case tbl_3_38 indentify the column name by using the following query</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">SELECT</span><span style="font-family: "Courier New"; font-size: 10pt;"> a<span style="color: grey;">.</span>Name<span style="color: grey;">,</span> a<span style="color: grey;">.</span>TableColumn<span style="color: grey;">,</span> a<span style="color: grey;">.</span>DataTypeInformation<span style="color: grey;">,*</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">FROM</span><span style="font-family: "Courier New"; font-size: 10pt;"> [mdm]<span style="color: grey;">.</span>[tblAttribute] a </span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">INNER</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">JOIN</span> mdm<span style="color: grey;">.</span>tblEntity e <span style="color: blue;">ON</span> a<span style="color: grey;">.</span>Entity_ID <span style="color: grey;">=</span> e<span style="color: grey;">.</span>ID</span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">WHERE</span><span style="font-family: "Courier New"; font-size: 10pt;"> e<span style="color: grey;">.</span>Name <span style="color: grey;">=</span> <span style="color: red;">'Product'</span></span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">AND</span><span style="font-family: "Courier New"; font-size: 10pt;"> e<span style="color: grey;">.</span>Model_ID <span style="color: grey;">=</span> 3<span style="color: red;"></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Make the changes to the table and the [mdm].[tblAttribute] row and rebuild all your views including viw_SYSTEM_3_38_CHILDATTRIBUTES</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Here is where the fun starts when I tried to stage the data I get the following error</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Error:</b> ERR210055 </div>
<div class="MsoNormal">
<b>Description:</b> An unknown error occurred when staging member</div>
<div class="MsoNormal">
record.</div>
<div class="MsoNormal">
<b>Tips for fixing the issue:</b> If an unhandled exception occurs during the staging</div>
<div class="MsoNormal">
process, all records will be marked with this error.</div>
<div class="MsoNormal">
This error may have nothing to do with records that</div>
<div class="MsoNormal">
display this error.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Against each row, nice. Problem solving time what went wrong.</div>
<div class="MsoNormal">
Find the stored proc that MDS is using that generated the error by doing a text search against all the stored procs in MDS database and the result is udpStagingMemberSave.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Next I had to add the following to code</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">SELECT</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: magenta;">ERROR_NUMBER</span><span style="color: grey;">()</span> <span style="color: blue;">AS</span> ErrorNumber <span style="color: grey;">,</span><span style="color: magenta;">ERROR_MESSAGE</span><span style="color: grey;">()</span> <span style="color: blue;">AS</span> ErrorMessage<span style="color: grey;">;</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
to the mdm.udpStagingMemberSave to display the error. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
2601 Cannot insert duplicate key row in object 'mdm.tbl_3_38_EN' with unique index 'ix_tbl_3_38_EN_Version_ID_VersionMember_ID'. The duplicate key value is (3, <null>).</null></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
You will have to run mdm.udpStagingMemberSave manually otherwise you will not see the result.</div>
<div class="MsoNormal">
Helpful sql</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">UPDATE</span><span style="font-family: "Courier New"; font-size: 10pt;"> [RegDistMDS]<span style="color: grey;">.</span>[mdm]<span style="color: grey;">.</span>[tblStgMember] <span style="color: blue;">SET</span> Status_ID <span style="color: grey;">=</span> 0<span style="color: grey;">,</span> ErrorCode <span style="color: grey;">=</span><span style="color: red;">''</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">EXEC</span><span style="font-family: "Courier New"; font-size: 10pt;"> mdm<span style="color: grey;">.</span>udpStagingMemberSave<span style="color: blue;"> </span>1<span style="color: grey;">,</span> <span style="color: green;">--@User_ID admin user</span></span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> 3<span style="color: grey;">,</span> <span style="color: green;">--@Version_ID, </span></span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> 2<span style="color: grey;">,</span> <span style="color: green;">--@LogFlag Defualt</span></span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> 39 <span style="color: green;">--@Batch_ID the last one processed</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Eventually you find this dynamic sql is causing the error. I’ve highlighted what is causing the issue.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> INSERT INTO mdm.'</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> <span style="color: magenta;">quotename</span><span style="color: grey;">(</span>@Entity_Table<span style="color: grey;">)</span> <span style="color: grey;">+</span> <span style="color: red;">N' </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ( </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> Version_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,VersionMember_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,AsOf_ID --Use this column to map between new @@IDENTITY and Stage_ID within OUTPUT clause </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Status_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,ValidationStatus_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Name </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Code </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,EnterDTM </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,EnterUserID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,EnterVersionID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,LastChgDTM </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,LastChgUserID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,LastChgVersionID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> '</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> <span style="color: blue;">CASE</span> @MemberType_ID </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">WHEN</span> @MemberTypeCons <span style="color: blue;">THEN</span> <span style="color: red;">N',Hierarchy_ID'</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">WHEN</span> @MemberTypeColl <span style="color: blue;">THEN</span> <span style="color: red;">N',Owner_ID'</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">ELSE</span> <span style="color: red;">N''</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">END</span> <span style="color: grey;">+</span> <span style="color: red;">N' </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ) </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> OUTPUT inserted.AsOf_ID, inserted.ID INTO #tblMemberID(Stage_ID, ID) </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> SELECT </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> '</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> @strVersion_ID <span style="color: grey;">+</span> <span style="color: red;">N' --Version_ID </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> </span><b><span style="color: red; font-family: "Courier New"; font-size: 16pt;">,NULL -- Set the default Member_ID </span></b></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Stage_ID --AsOf_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,1 --Status_ID </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> '</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> <span style="color: blue;">CASE</span> @MemberType_ID </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">WHEN</span> @MemberTypeColl <span style="color: blue;">THEN</span> <span style="color: red;">N',3 --Set ValidationStatus_ID TO 3 (validation succeeded) for collection members since business rules does not apply '</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">ELSE</span> <span style="color: red;">N',0 --Set ValidationStatus_ID to New AwaitingValidation'</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">END</span> <span style="color: grey;">+</span> <span style="color: red;">N' </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Member_Name </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,Member_Code </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,GETUTCDATE() --EnterDTM </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,'</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> @strUser_ID <span style="color: grey;">+</span> <span style="color: red;">N' --EnterUserID </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,'</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> @strVersion_ID <span style="color: grey;">+</span> <span style="color: red;">N' --EnterVersionID </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,GETUTCDATE() --LastChgDTM </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,'</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> @strUser_ID <span style="color: grey;">+</span> <span style="color: red;">N' --LastChgUserID </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> ,'</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> @strVersion_ID <span style="color: grey;">+</span> <span style="color: red;">N' --LastChgVersionID </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> '</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">+</span> <span style="color: blue;">CASE</span> @MemberType_ID </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">WHEN</span> @MemberTypeCons <span style="color: blue;">THEN</span> <span style="color: red;">N','</span> <span style="color: grey;">+</span> <span style="color: magenta;">ISNULL</span><span style="color: grey;">(</span>@strHierarchy_ID<span style="color: grey;">,</span> <span style="color: red;">N'NULL --Hierarchy_ID'</span><span style="color: grey;">)</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">WHEN</span> @MemberTypeColl <span style="color: blue;">THEN</span> <span style="color: red;">N','</span> <span style="color: grey;">+</span> @strUser_ID <span style="color: grey;">+</span> <span style="color: red;">N' --Owner_ID'</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">ELSE</span> <span style="color: red;">N''</span> </span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">END</span> <span style="color: grey;">+</span> <span style="color: red;">N' </span></span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> FROM #tblStage </span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Courier New"; font-size: 10pt;"> WHERE Status_ID = @StatusOK;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So eventually you will find that that the following index is to blame.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">IF</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">NOT</span> <span style="color: grey;">EXISTS</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: grey;">*</span> <span style="color: blue;">FROM</span> <span style="color: green;">sys</span><span style="color: grey;">.</span><span style="color: green;">indexes</span> <span style="color: blue;">WHERE</span> <span style="color: magenta;">object_id</span> <span style="color: grey;">=</span> <span style="color: magenta;">OBJECT_ID</span><span style="color: grey;">(</span><span style="color: red;">N'[mdm].[tbl_3_38_EN]'</span><span style="color: grey;">)</span> <span style="color: grey;">AND</span> name <span style="color: grey;">=</span> <span style="color: red;">N'ix_tbl_3_38_EN_Version_ID_VersionMember_ID'</span><span style="color: grey;">)</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">CREATE</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">UNIQUE</span> <span style="color: blue;">NONCLUSTERED</span> <span style="color: blue;">INDEX</span> [ix_tbl_3_38_EN_Version_ID_VersionMember_ID] <span style="color: blue;">ON</span> [mdm]<span style="color: grey;">.</span>[tbl_3_38_EN] </span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">(</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> [Version_ID] <span style="color: blue;">ASC</span><span style="color: grey;">,</span></span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> [VersionMember_ID] <span style="color: blue;">ASC</span></span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">)</span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">WITH </span><span style="color: grey; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">PAD_INDEX</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">STATISTICS_NORECOMPUTE</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">SORT_IN_TEMPDB</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">IGNORE_DUP_KEY</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">DROP_EXISTING</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">ONLINE</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">ALLOW_ROW_LOCKS</span> <span style="color: grey;">=</span> <span style="color: blue;">ON</span><span style="color: grey;">,</span> <span style="color: blue;">ALLOW_PAGE_LOCKS</span> <span style="color: grey;">=</span> <span style="color: blue;">ON</span><span style="color: grey;">,</span> <span style="color: blue;">DATA_COMPRESSION</span> <span style="color: grey;">=</span> PAGE<span style="color: grey;">)</span> <span style="color: blue;">ON</span> [PRIMARY]</span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">GO</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Somehow when I used the SSMS in design mode to change the table it overwrote the index incorrectly. Yeah so much joy</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">IF</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">NOT</span> <span style="color: grey;">EXISTS</span><span style="color: blue;"> </span><span style="color: grey;">(</span><span style="color: blue;">SELECT</span> <span style="color: grey;">*</span> <span style="color: blue;">FROM</span> <span style="color: green;">sys</span><span style="color: grey;">.</span><span style="color: green;">indexes</span> <span style="color: blue;">WHERE</span> <span style="color: magenta;">object_id</span> <span style="color: grey;">=</span> <span style="color: magenta;">OBJECT_ID</span><span style="color: grey;">(</span><span style="color: red;">N'[mdm].[tbl_3_38_EN]'</span><span style="color: grey;">)</span> <span style="color: grey;">AND</span> name <span style="color: grey;">=</span> <span style="color: red;">N'ix_tbl_3_38_EN_Version_ID_VersionMember_ID'</span><span style="color: grey;">)</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">CREATE</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: blue;">UNIQUE</span> <span style="color: blue;">NONCLUSTERED</span> <span style="color: blue;">INDEX</span> [ix_tbl_3_38_EN_Version_ID_VersionMember_ID] <span style="color: blue;">ON</span> [mdm]<span style="color: grey;">.</span>[tbl_3_38_EN] </span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">(</span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> [Version_ID] <span style="color: blue;">ASC</span><span style="color: grey;">,</span></span></div>
<div class="MsoNormal">
<span style="font-family: "Courier New"; font-size: 10pt;"> [VersionMember_ID] <span style="color: blue;">ASC</span></span></div>
<div class="MsoNormal">
<span style="color: grey; font-family: "Courier New"; font-size: 10pt;">)</span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">WHERE </span><span style="color: grey; font-family: "Courier New"; font-size: 10pt;">(</span><span style="font-family: "Courier New"; font-size: 10pt;">[VersionMember_ID] <span style="color: grey;">IS</span> <span style="color: grey;">NOT</span> <span style="color: grey;">NULL)</span></span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">WITH </span><span style="color: grey; font-family: "Courier New"; font-size: 10pt;">(</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt;">PAD_INDEX</span><span style="font-family: "Courier New"; font-size: 10pt;"> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">STATISTICS_NORECOMPUTE</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">SORT_IN_TEMPDB</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">IGNORE_DUP_KEY</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">DROP_EXISTING</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">ONLINE</span> <span style="color: grey;">=</span> <span style="color: blue;">OFF</span><span style="color: grey;">,</span> <span style="color: blue;">ALLOW_ROW_LOCKS</span> <span style="color: grey;">=</span> <span style="color: blue;">ON</span><span style="color: grey;">,</span> <span style="color: blue;">ALLOW_PAGE_LOCKS</span> <span style="color: grey;">=</span> <span style="color: blue;">ON</span><span style="color: grey;">,</span> <span style="color: blue;">DATA_COMPRESSION</span> <span style="color: grey;">=</span> PAGE<span style="color: grey;">)</span> <span style="color: blue;">ON</span> [PRIMARY]</span></div>
<div class="MsoNormal">
<span style="color: blue; font-family: "Courier New"; font-size: 10pt;">GO</span></div>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-6587837391048405292010-10-13T22:34:00.001-07:002010-10-13T22:34:02.567-07:00WPF DataGrid Entity Framework 4.0<p>Tags: WPF, DataGrid, Entity Framework, Detached</p> <p>When I populate the datagrid with linq + entity framework for example <br /> <br />myModel context = new myModel(); <br />myDataGrid.ItemsSource = from a in context.Apples select a;</p> <p>and then you create a new record via the DataGrid and you want to handle the event InitializingNewItem. <strong>You may want to check what the display order of apples is, you can not check via context as the record/s are detached so you have to look in items. The problem is that the new record is of type <strong>MS.Internal.NamedObject</strong> not <strong>Apple.</strong></strong></p> <p><strong>So you write the following LINQ query <br />var MaxDisplayOrder = (from Apple a in myDataGrid.Items select a.DisplayOrderNo).Max();</strong></p> <p><strong>You run it and get the following error exception: <br />Unable to cast object of type 'MS.Internal.NamedObject' to type 'Apple'.</strong></p> <p><strong>To solve this problem use OfType method <br /></strong>var MaxDisplayOrder = (from a in myDataGrid.Items.OfType<Apple>() select a.DisplayOrderNo).Max();</p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-43650800068976938302010-05-31T18:44:00.001-07:002010-05-31T18:44:39.271-07:00.Net 4.0 Framework GAC Location<p>The location of the GAC has split with .Net 2.0 – 3.5 Framework remaining where it is <br />C:\Windows\assembly <br />And the .net 4.0 GAC location is now <br />C:\Windows\Microsoft.NET\assembly</p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-54941791169818886522010-05-24T23:35:00.001-07:002019-08-13T21:42:47.329-07:00VirtualBox using Hyper-v VHD imageTag: Virtual Box Hyperv<br />
I was sick of using windows server 2008 r2 and wanted to move to window 7(now 10). After reading a few reviews it was clear that VirtualBox works very nicely. So I nstalled VirtualBox on a clean windows 7 machine and copied across a VHD. Setup the virtual machine to use an existing hard drive.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5J0COOfrHDyr2ZikEzUt5fAr1-0I1-bZilxoT8MhyphenhyphenQFjpJdaGWAoD-CNjgrdKWUEzX8nHJw_iGQXkUBVUSW-0l_JRz7BSRRqt1483mwT_mkDxs91WSQmefz0fH3EwK1ARnmcwDSFn0mQ/s1600-h/image%5B3%5D.png"><img alt="image" border="0" height="414" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLOwGUksxJUHK_bhQEfbdelduDB67_lq0-9cyIBRDDv07ycbNmO0p_NjFUeFJFNnd4x6DkFTl-ASXiSPHZsXQwr-levOk5CzIC6qfNrJX7N94sau9nsCGGz2d1FE_vg42meeVRLvyYKjM/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="570" /></a> <br />
Select <strong>Next</strong>. <br />
Select <strong>Memory</strong>. <br />
Select <strong>Use an existing hard drive</strong>. <br />
Select <strong>Add</strong> icon and select the desired VHD. <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZFm11qIEesJr7a5xpTwIbevkOmPPWZal-zqfLkbULtwGiC35_jFtYV3IFSQzbVGzIxzUV16sssoRGlgeyW3jdTEihoHT9BZf8PQvfH-LtSAzGaDQq-yK03DbvxoX7s9wTohVWPS84R9M/s1600-h/image%5B10%5D.png"><img alt="image" border="0" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhActtmfc48bpVCO8kmkbAHYVf2jAMbG6WDz0lIfxAzLqRicJLx8TaFCXM-w9XfNpPRqKTUNTPjPigj_2BMDIfvaQGOSQnD89bv8fPnL1Ltci70ko6t8l4ube1-ZEBR8OyyaRR38uMKHh8/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="640" /></a> <br />
Upon starting the virtual machine I received the following blue screen of death: <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikBI0iqv3ivIk1-mZYNuyuNKSYTixD2OrbUNcZ6GwMtB7nZwrl2Z80bfT1WIp3EsmTT7xjgVqPTEVOfktls72-7J6BpO2GYX5zr0ONI-wkg19Fv__cQSQWoBj_B4YJc2RAxGCwxmxsCmA/s1600-h/image%5B14%5D.png"><img alt="image" border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeCxT49CBvziO1nqdcjIILgV2gOyZ76kuOw7mk4zPhCl5kI5UqIrwUrDXUSJGTosEnvXmNR8X_IKKWV9SF-ssTcphtFJmD8SkjNRg_sAcUcAxgUUlGBwmok3KbHc2qnLgj6uRjO2MnIvQ/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="644" /></a> <br />
<strong>Error Message </strong>A problem has been detected and windows has been shut down to prevent damage to your computer.<br />
If this is the first time you’ve seen this stop error screen, restart your computer. If this screen appears again, follow these steps:<br />
Check for viruses on your computer. Remove any newly installed hard drives or hard drive controllers. Check your hard drive to make sure it is properly configured and terminated. Run CHKDSK /F to check for hard drive corruption, and then restart your computer.<br />
Technical information:<br />
*** STOP: 0x0000007B (0x80786b58, 0xC0000034, 0x00000000, 0x00000000)<br />
<strong>Solution</strong> <br />
The issue is that hyper-v will only build a bootable IDE hard drive. So when you create your virtual machine you need to make sure that you are not booting the VHD under a SATA Controller <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUHEIduTjfx3zRYrqCvx83WHSCjRkgHSU0LqrR4X9id4h39RO1k3k1D0hByCNFmz2pr0YConfxG_xM9AndL2Mp3b8zLjBkN_kNu2nLiwC3ZjDlupXeaNBm5fRg9ZpJ0raCUA8q0SbmKR4/s1600-h/image%5B18%5D.png"><img alt="image" border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibRjRI7sspOBD1hd9BA_D8ElxGJrd6DnZn7mszVI2CBFDe4n_R-2ARTPYtcMavjCYLehLGUr6pIE6mgOOKVkLwZFqDikz5T8JcoZTfUd9UCqWoLIvl6qC97KXg7sRDeyghMYar-U1W6oU/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="661" /></a> <br />
but instead use the IDE Controller <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluwZMNgiwlHljj2CMYtVNS1fyix1g4NEvSw-UXwzk9ORhvgK9EkeW49udrkZnd6MuxBgqdDynnMhD9uMteD6anG7r6X6nT-HEQJ264qAfnodVOqazky-mUUNw3OKfMwqqZkluBCPoh7I/s1600-h/image%5B22%5D.png"><img alt="image" border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic81DDJVbWluWBTHCs7bDC-F9m2wdNWy-mSl9_chhRWYCQF2leuQAgl3V2YwEVjXyd-Wb5U2iM6t8z_m27kDlC3-JqXvjN7plQlPT3NPwGrLUjHra8ZPNpa3S8yVYZyTaX4PYEdDrF7jg/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="661" /></a>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com36tag:blogger.com,1999:blog-3998417675939903159.post-76048350877809752242009-10-14T16:18:00.001-07:002009-10-14T16:24:18.363-07:00Unit testing SharePoint WSS 3.0 x64 bit<p><b><span style="color:#80ff80;">Problem</span> <br /></b>trying to MS unit test code on x64 bit OS with x64 bit WSS 3.0 installed</p> <div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:ee7afe0a-8d30-4064-9a34-e2650624bcc8" class="wlWriterEditableSmartContent"><pre style="overflow: auto; background-color: rgb(255, 255, 255); white-space: pre-wrap; word-wrap: break-word;"><span style="color: rgb(0, 0, 0);">[TestMethod]<br /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> TestMethod1()<br />{<br /> </span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> (SPSite sp </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> SPSite(</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">http://localhost:13000/</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">))<br /> {<br /> Console.WriteLine(</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">Site valid</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /> }<br />}</span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div><p><b><span style="color:#80ff80;">Error Message<br /> </span></b>Test method TestProject1.UnitTest1.TestMethod1 threw exception:<br /><br />System.IO.FileNotFoundException: The Web application at <a href="http://localhost:13000/">http://localhost:13000/</a> could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add<br />a new request URL mapping to the intended application..</p><p><b><span style="color:#80ff80;">Solution</span><br /></b><a href="http://community.bamboosolutions.com/forums/t/8179.aspx">http://community.bamboosolutions.com/forums/t/8179.aspx</a><br />download nunit (only 32 bit). Nunit will automatically choose which JIT compiler to use to test the code.</p><p><b><span style="color:#80ff80;">Additional Stuff<br /> </span></b>Code modification to have both nunit and MS test running together<br /><a href="http://www.martinwilley.com/net/code/nunitmstest.html">http://www.martinwilley.com/net/code/nunitmstest.html</a></p><div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:cc4f42a0-1733-4eb0-8a83-c5d09c4d2f5f" class="wlWriterEditableSmartContent"><pre style="overflow: auto; background-color: rgb(255, 255, 255); white-space: pre-wrap; word-wrap: break-word;"><span style="color: rgb(0, 0, 255);">#if</span><span style="color: rgb(0, 0, 0);"> !NUNIT</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> Microsoft.VisualStudio.TestTools.UnitTesting;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> Category </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute;<br /></span><span style="color: rgb(0, 0, 255);">#else</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> NUnit.Framework;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> TestClass </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> NUnit.Framework.TestFixtureAttribute;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> TestMethod </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> NUnit.Framework.TestAttribute;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> TestInitialize </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> NUnit.Framework.SetUpAttribute;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> TestCleanup </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> NUnit.Framework.TearDownAttribute;<br /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> TestContext </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> System.Object;<br /></span><span style="color: rgb(0, 0, 255);">#endif</span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div>Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-18410069013526703152009-08-09T19:39:00.001-07:002009-08-09T20:20:55.684-07:00Silent Install<p><a href="http://cid-5d768808b74dd39a.skydrive.live.com/self.aspx/blog/SilentInstall.zip">download here</a></p> <p>As a contractor and also some of colleges, end up building a lot of virtual environments. So after installing Biztalk 2009 for the nth time. I decided to automate the Biztalk 2009 installation (and also Biztalk 2006 r2 and ESB 2.0 Toolkit). I started looking at some products that where available on line but nothing met my needs. The requirements that I was looking for:</p> <p>autologin – some packages that are installed require reboot prior to continuing i.e. sql2008 <br />config – all data to be stored in a config file and easily customizable. <br /><strong>non msi</strong> – not have to install it on a clean machine.</p> <p>So I build Silent Install. Its still a work in progress but its stable enough to get the job done.</p> <p><strong>Benifits</strong> <br />· Same dev installation across all environments. <br />· No missing components. <br />· Reproducible production installs</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe9nRDa_erGYHdLqg15Wj4xuvoQNUEsWs99bs9ytS_lNhMNOxX1mGgFE3-o3R7_P1V8D3AwpkFXPyVx1OpMQuIGncbUW0gy4BpbMaAepDlwsWq8SX8VnZIVp7G-HnskRwv5HTnfY36pp4/s1600-h/image%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj29cUQh3kqMzYgwRdQ_yLdETaU251CRvIt8i-md4ORZqcyMNNP1rXIxifPUPX50V5Fra0d3w7PX2tICbWiuloxa63KrqkrbfVL14jEyj1lRFvqd9BJEy0deXOtw-KyfafEeGQ3-2Nsc04/?imgmax=800" width="644" height="477" /></a> </p> <p><strong>Currently there are 4 options available:</strong> <br />· Install Biztalk 2006 R2 Dev on win 2003 <br />· Install Biztalk 2009 Dev on win 2008 <br />· Install Biztalk 2009 ESB Tool Kit 2.0 <br />· Create Custom Install</p> <p>As seen below <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWQfNwhMxMvlw2SfVlZGHvJisYpcv9kuruMM-vZ3c_AtIgECboOM5Nc36NEoz3L5v88DGHNDiyZgq6xfvgpBWFeue7f7PBAA7cfUX5bXE-jm1X1v9qEVEuzTbOpK5MBfcQZk0EhzbsF-E/s1600-h/image%5B7%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7uVIc9Jk5fpjnTp1M6wi1l8FaGc43NSla0Sp2DIVaJAL9m0grea_QqxUxiW-VapzRxuMEATzEiTdm-o4qIypxyNKT-dOrm-G5NoQQgdniI1Wpp4Dw8b2cHrA4JkVoEWQIBr9zpCjXyfk/?imgmax=800" width="314" height="79" /></a> </p> <p>Some installations require a reboot, so your credentials are required for auto login<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbuttnnPj2lOJlVEEptAuZwLmb70dLYJYHCfrgKjYn5tE5zwKMRvJztEZPR-7rjG69CZS69P23A08BKkLpBUU0FBXVKEDG3JRmW-kNJ_GLYPhdAM-aRkQ1DnA1FgMGeZZbhoMIVqSx8hg/s1600-h/image%5B11%5D.png">.<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMpnIzZmZUV3rO7eACaM4rQgLu62JQEYRXOAH_AyoPYi6Py8ryITgZ4A0MITSIkkjEAdObCoVtH8VL8ivD5Rn8Zu3JbyOyX5ZkK2vmnDCkGKRu0io8TP7iPPGMACUWk4rxNatT0Z_hTy0/?imgmax=800" width="349" height="167" /></a> </p> <p><strong><font color="#80ff80" size="4">How things work</font></strong></p> <p>I create a vhd (Virtual Hard Disk) with all install files copied onto it (size is ~14GB I would like to put it on the net but due to the size and legal issues that will never happen).</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFikT6ZHJtLTrKqpF3jLDQUTD5_dA5MmnRjGKbtRsPKDjLfH0IfAOF3XQZ95foq3ib93HSzYzio1UAIlOWZoU2vXGNMQaEvLTgwZtuSbL794HW4_GA-O_oYCke1nqbY3sYPWW9k_GqNT0/s1600-h/image%5B15%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSmimq63cE76T3yd8XbKm7HFxwFkgzL7rSjinesRJaXH0RvhzZYAFPM1XeT7L5TLIjUQVN5MFc7efiP3PFhwi_Oz4fl_CIVaA4DigdQ4xR4Zu311evJc9Jx9yg0ptNT3ZnxnBqGGtfxAo/?imgmax=800" width="312" height="257" /></a> </p> <p>The way it works is that you figure how to silently install each application by itself, create a batch and sometimes additional ini/xml data files as well. Once you have created each batch file you need to determine in which order to run them.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHvTiu-kNPVzTIf9tCKP0clN7XWATWP37auHHj4wlz6ma5I_rsIzVaCFRD5rkJ_uX-Za0QC7nv_6wOw50ISg1py6s1ITRwS_pz6OPmLEdbCfqZIO3LPrtXobOKdh0cIFQ_AleUhqSIM2c/s1600-h/image%5B19%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1wVJq43zP5bUhrBq9eu_eQ7dWg36Nx9Ww0uOdJGNJsRIuTMUbq13CDU4r7wuCXFdn5J4uIZyOU5KHa3BUXCpLfpdXibo4hRpcls7yDXRgaAIVKzvKsYFXrQkaJe_pfrQd73Qs5H8yKps/?imgmax=800" width="247" height="551" /></a> </p> <p>This is then stored in the app.config of Silent Install. <br /><Environment name="Biztalk2006 R2" Description="Install Biztalk 2006 R2 Dev on win 2003"> <br />  <applications> <br />    <application order="1" value="IIS6" /> <br />    <application order="2" value="SQL2005" /> <br />    <application order="3" value="Visual2005" /> <br />    <application order="4" value="Visual2005Sp1" /> <br />    <application order="5" value="SQL2005Sp3" /> <br />    <application order="6" value="Reboot" /> <br />    <application order="7" value="Wss3Sp1" /> <br />    <application order="8" value="Biztalk2006R2" /> <br />  </applications> <br /></Environment> <br /><Environment name="Biztalk2009" Description="Install Biztalk 2009 Dev on win 2008"> <br />  <applications> <br />    <application order="1" value="Powershell" /> <br />    <application order="2" value="Reboot" /> <br />    <application order="3" value="PowershellUnrestricted" /> <br />    <application order="4" value="IIS7" /> <br />    <application order="5" value="Office2007" /> <br />    <application order="6" value="Visual2008" /> <br />    <application order="7" value="Visual2008TeamExplorer" /> <br />    <application order="8" value="Visual2008Sp1" /> <br />    <application order="9" value="SQL2008" /> <br />    <application order="10" value="Reboot" /> <br />    <application order="11" value="SQL2008" /> <br />    <application order="12" value="Biztalk2009Prerequisites" /> <br />    <application order="13" value="Wss3Sp1" /> <br />    <application order="14" value="Biztalk2009" /> <br />  </applications> <br /></Environment> <br /><Environment name="Biztalk2009ESBToolKit20" Description="Install Biztalk 2009 ESB Tool Kit 2.0"> <br />  <applications> <br />    <application order="1" value="Biztalk2009ESBToolKit20" /> <br />  </applications> <br /></Environment></p> <p></p> <p><font color="#ffffff" size="2"><strong>Installing/Progress Screen</strong></font> <br />Once the install button is clicked you will be directed to the progress tab and installation will start. <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzxbx8VtjY62kWWDvMtmsyN2nZSKXWyi6pef5h8r2hHJkIwHfruuaKiBloSN3Gr7cfK2ll62JNUn1tbB14Er8Wc2bDRF1oG1jEb1TCugtuHi_7V1t2MSIPVrg_5oS8VOZejb4y6hfEcI0/s1600-h/image%5B28%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicB9PcGpElnv7loWEZls6dN9Q_TD5cVv7TMyPncRXKpKw56VEwvMseYL3cEn2tClV3NXZA8GxpblETLRfIhcXiwoXHVtCPTajlpIVY0I91kASJ1W_exXchG9HwKbG6rcWciYHUQKCdBlo/?imgmax=800" width="644" height="477" /></a> </p> <p><strong><font color="#80ff80" size="4">Running and things to do after install</font></strong> <br /><strong><font size="3">Assumptions <br /></font></strong>Clean install of the OS and has been fully patch/updated. </p> <p><strong><font size="3">Install Biztalk 2006 R2 Dev on win 2003</font></strong> <br />   · prompted at start asking location of i386 dir (not sure where the registry setting for that is) <br /><strong>After install</strong>  <br />· Configure Windows SharePoint Services (need to read and understand <a title="http://www.mindsharpblogs.com/ben/archive/2008/03/08/4411.aspx" href="http://www.mindsharpblogs.com/ben/archive/2008/03/08/4411.aspx">http://www.mindsharpblogs.com/ben/archive/2008/03/08/4411.aspx</a>)  <br />· Disable the Shared Memory Protocol</a> (not sure where the registry setting for that is)  <br />· Configure BizTalk Server</p> <p><font size="3"><strong>Install Biztalk 2009 Dev on win 2008</strong></font> <br /><strong>After install <br /></strong>· Configure Windows SharePoint Services <br />· Disable the Shared Memory Protocol <br />· Configure BizTalk Server</p> <p><strong><font size="3">Install Biztalk 2009 ESB Tool Kit 2.0 <br /></font></strong>· <a href="http://ollysense.blogspot.com/2009/08/esb-20-toolkit-install-batch-file.html">Guide on how to install ESB 2.0 toolkit</a></p> <p><font color="#80ff80" size="4">Future enhancements</font> <br />· check if a program has already been installed. <br />· mount ISO </p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-5551186098102802032009-08-04T23:17:00.001-07:002009-08-09T22:39:02.069-07:00Installing Adapter Pack<p><font color="#aaffaa" size="4">WCF LOB Adapter SDK SP2</font></p> <p align="left"><strong><font size="3">System Requirements</font></strong></p> <p align="left"><strong>Supported Operating Systems:</strong> Windows Server 2003 R2 Enterprise Edition (32-Bit x86); Windows Server 2003 R2 Standard Edition (32-bit x86); Windows Server 2003 Service Pack 2; Windows Server 2008 <br /><strong>Supported Platforms:</strong> x86 and x64 <br /><strong>Prerequisite Software Requirement <br /></strong>You must install this software prior to installing the WCF LOB Adapter SDK. <br />a. Microsoft .NET Framework 3.5 SP1 <br />b. Microsoft Visual Studio 2005 or Microsoft Visual Studio 2008</p> <p><strong>Note: You require this only if you want to either build custom adapters or develop solutions that use the adapters built using the WCF LOB Adapter SDK.</strong></p> <p>c. Microsoft BizTalk Server 2006 R2 or Microsoft BizTalk Server 2009 </p> <p><strong>Note: You require this only if you want to use the adapters with BizTalk.</strong></p> <p><font size="3"><strong>Start Installation</strong></font></p> <p>1. Download the setup files from the Microsoft Download Center at <a href="http://go.microsoft.com/fwlink/?LinkID=96184">http://go.microsoft.com/fwlink/?LinkID=96184</a> to a temporary location on your computer. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnp5rAO-f_w9Y6uWYpANYJtCB4vq2xnRGGp_WmQAtMeYeEXEi39fTI0OLyDkcSCQm2msXZIAbY9zXT6-TZMabjbdRI0QlPs78QA0ElRwPn7w62RHxn8Vsou2wYAFgzbRd8ULeSFlrM05k/s1600-h/clip_image001%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNfNeuJrgyGBrVW_s87U3CdY6QVjvdTkmkWvwwM1uiizdIYRTQS3HiZONx7qb-7ggilIUEE3RFjvdYMhKenPUf-1UMhJhe7Hly-yWdP7lBBJZ3vWmW_R2u-jE31UGfnOVBGuZiQjvV1Sc/?imgmax=800" width="244" height="183" /></a> <br />2. Run WCF LOB Adapter SDK SP2 x86. exe <br />3. Set extract location and select Unzip. </p> <p>4. To start the installation wizard, navigate to the folder containing the setup files and click AdapterFramework.msi (for an x86-based platform) or AdapterFramework64.msi (for an x64-based platform). <br />If a previous version of the WCF LOB Adapter SDK is detected, you will be prompted to upgrade the existing installation. To continue with an upgrade installation, click Ok; otherwise, click Cancel to exit the installation. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk-uhOfNPjAv8VtHuXtI3n5zWd2-seOO7fssJgsIa0-KG00fjXzVSCVhvafK73EEjfVF3SBSV5lqFe9KoVwVp6seqNKzXdjOGZE-lFvM3g7o6JAQH4tWYLNJn_-j3B_ELt68jczmfLlB8/s1600-h/clip_image002%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbmolW0jWaXNYY7rjSDVbRdocz5xXOeaLj7R0Rq56y49BBtm8VdvLTROft60QZGB_5igR7dTS-mZBE3x2TuaESW-5-ywlXQ9CiP7jBba8-ZzIwYcFRS1A9efQ1TkdhFtwyBRv4cIzXYyw/?imgmax=800" width="244" height="189" /></a> <br />5. On the Welcome screen, click Next. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixOf0AFqj3iO2H3gVgUjqp2_9Md94YIlD9lam0n7PgoFLyGDoqN0RO9aphfzbHG2jOPnKH9gsGlB5OrODWdz4m4QQw8hQ4dfejP8-tgIk0J_o9ueee3HlfU-SeW3wBNwDc4hFEGtL5T78/s1600-h/clip_image003%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikKRtrUlDPRphju9FfUXF16PBb_CbBorUCk1jKMAdNrDZnwXgBifGWe1ZERu1EdzhzzFLh-vLwCM2dcf5DLhgf0UIsK4bXgz4K0rZCSAsfKaqgYn7471KhQ1mPoIC-KMuDIfbEDJ7_dpw/?imgmax=800" width="244" height="190" /></a> <br />6. If you accept the license agreement, click Next. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_8fFSmq6WqRPNINCMbIoCukIjWUvucMPQnzA7qogFWqf4Q0rKXcNhBmMLW54NU25uj0xCk_VyxmvJGrEcSy9x4HMhsVPIia06za_9OY3b8M8HSFI7axBMRzlvsvklxlARI3fnp0UX7-Q/s1600-h/clip_image004%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjseDYow87KkUKWg_kqqHuOQCbTdmLaQYAdGT9vm5V0A7gisfCMQnk-BxqII4GUCFdndOxiIJ_Ym3_rSalG7zi6j4Fup4huEqgPeII32iTCqIJ66prj0W6cqYuJ2y_S_3J28TnRZHzP69k/?imgmax=800" width="244" height="189" /></a> <br />7. In the Choose Setup Type dialog box, select the type of installation you want: </p> <ul> <li>To install the run time and tools, click Typical. </li> <li>To select the features that you want to install and the installation location, select Custom. </li> </ul> <p>To install the base WCF LOB Adapter SDK run-time features, select Runtime.</p> <p>To install the WCF LOB Adapter SDK development tools including the Adapter Development Wizard, Visual Studio Plug-in for generating a .NET Proxy (Add Adapter Service Reference Visual Studio Plug-in) and BizTalk Add-in for generating XML Schemas in a BizTalk Project (Consume Adapter Service BizTalk Project Add-in), select Tools. </p> <p>To install the sample Contoso and Echo adapters, select Samples.</p> <ul> <li>To install all the features, click Complete. </li> </ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw8XfPttFHQZQ8FVbA0SqFDw2sMrG9cQ7wSr0NGU_AOhuLqNxVuygQK7QAyf9acj6g8c_RmDp9lH9X_MsN27ZNEvH_qqJKcXfOEDFl1InI-_3-N2zMsol2w5ag3tLg2brjXT30xsr0feo/s1600-h/clip_image005%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGT_Sqt_v2-9hv6_Vazk7eC62APkEfR9COqoA5Me77GxRxG6djGiYqKnxln8JXp2Qm_C71BJphxyEFBTtBxv2lIL1J2v2CQ9p6xu0ihCj4U_lgHt7pvM2ExKKrQLqy-pXQBx3BlqEUq6E/?imgmax=800" width="244" height="189" /></a> <br />8. Click Install. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1gTlZHLZocs6NedrAs94Q0naImdCEOutEHCgA6ZyqaXIUqrbgYp-kTc9mAcYNW_61JfLqM83krhjIu4zQO-zi5gbLQEDDp9E3Ap-vgy2ivFX7BKqrReafTbnq2G2FTq-t1wjjypr3tYI/s1600-h/clip_image006%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDXuv7CAc8vFnpeSHXn8Hsfiij0Gu3mi4FbzHanrgWU064Py21tFjoV2b9UiG3icf0wJC1QhtswQST2_9suHdsZrL4AV-dhVHd_tWY6CLvHyqqp1DNvsWp4-ISLGX3C-DAvu_xXeW0EOQ/?imgmax=800" width="244" height="91" /></a> <br />9. Specify whether you want to receive automatic updates related to the WCF LOB Adapter SDK; select Use Microsoft Update when I check for updates (recommended), click OK </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC-d4y-8m9hjyhr0qu3F5WxIXx7VAbvQ41VKSbi69KSHnusfoohnQKhm1GDS_oeCq3d9uVBwx7pcwdRxxhvWz_TaSuS-Lu2bfZGmvRn9N01VNYDihrf5xwzrM_F59C2mrm6Ifpe5yKqgw/s1600-h/clip_image007%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image007" border="0" alt="clip_image007" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKayEK6mury_qmHmk-iHz5IKAiZwY2To3lJSWgonYxbr-ND7DmEpV5DTx-kYhOW05aMsx9G4uKbgTxzNFXFrpWnfT_T-ZF3nBFyXTTgk5aYdfUJxY6LM1gQVAaZPLkjZEvlP8I9SpHIqM/?imgmax=800" width="244" height="189" /></a></p> <p><font color="#aaffaa" size="4">Installing Microsoft BizTalk Adapter Pack 2_0</font></p> <p>1. Download the setup files from the Microsoft Download Center at <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=76736BA7-3C05-4436-9353-1C33F9005194&displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=76736BA7-3C05-4436-9353-1C33F9005194&displaylang=en</a> to a temporary location on your computer. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4rM38EFM_VDLxJ6_d8p4iaIdDVc1qljX_7bJAqW1lkMc6jFPBbuwkLo-O0IxcNykc_tDrYz3WWXL-3JSbQMYY6R6nqWfsstOa0YQz3UqsU3UzBipzk5eUBcldxwrQODacef_hk9VcNRw/s1600-h/clip_image008%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Eeec_N4IXZQ9Mh7CBsB-FMhdLIY7OWRlQZ8zqtSitC0YINWduhSZm2uqAzsaH0VAbBlm6fH_s6ITtOn48erUlJbwi5xB8fYdAtHJd8YJCgbqWGtXuMkF5nQlp-NaaZ5n4gzGoY8iBRk/?imgmax=800" width="244" height="183" /></a> <br />2. Run Microsoft BizTalk Adapter Pack 2_0 Evaluation x86.exe <br />3. Set extract location and select Unzip. From the root location of the installation CD, double-click AdaptersSetup.msi (for an x86-based platform) or AdaptersSetup64.msi (for an x64-based platform).</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyxpNIVUOirtTElldrlRbZj_7rlyrtKK9FKIhys9EEkhflfxR-FhaSN55Sx1noa16V3XpthSnGthyAT5lQTfzFW6bt0X-qNs4pmPBJFnBNhAPClJiBGGgoo56P50OmiqJpNngLlE1ICM/s1600-h/clip_image009%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image009" border="0" alt="clip_image009" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVOALJLGKTPe4pzmxienU5zQ4iQZBlKTMzhN5-6nPwYqNbu093s7sC83XX2SR9YAyu4TwD-a1dpxjUgPAfDeMUbf-mmJRWZQRLcijXFti8tQN7QQE4hfyqJHcaEalRWVB8l1msOgwtDg/?imgmax=800" width="244" height="189" /></a> <br />4. Read the information on the Welcome screen, and then click Next. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZWXI3GbQnPRNWMepZTxZ8w7CFl6flN-EQi6MvLIY_UPJ4s-MBHMSuXtJCd6AoEWX8846ZJYD84sFyVDLk_UEIG7ZNCagGZDSWU_EmZYrh6nn0CtyOcptMtCHlF87I9YRO9fnltzYQnFw/s1600-h/clip_image010%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqMj174dvGK1D76uV2NuneEoNcx_NG2-rsaoevHPJIUHLagrXuQofGdsE_LxQZDCsraMt6D_gHmp5D37hlnxVY1hMKfK0VYioXakfJBhv5a7IU2310Jnc_Y1uK8HGsnfvbiDxOSgVEoCE/?imgmax=800" width="244" height="189" /></a> <br />5. Read and accept the end-user license agreement (EULA), and then click Next. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ0DPo-xnx4g00KepSuApdKpUL9csED6j2GT1L9w5Ah6ZvOCa3FSs-HEnSqEuok9F7Tx0-a7yg3DiCJEaHxBoEiGoFMTxrbpGNKhrmNQqQUSbfnTi4137NQywIb32_gGF40pGeVA1SoAo/s1600-h/clip_image011%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image011" border="0" alt="clip_image011" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9iGTLnkVMSIoU1XDI2crBQpHwUCIKS0iOcVmdH5cp3k4hVUzh7OrY4W5tdN4k76m4hAdZgf_EvyirevPAnWBPgpvfcEDU3CQ4e-s7BIW5GqvmqN-CNuUze4lSuxMXKOt_x-LN8kbNZh8/?imgmax=800" width="244" height="189" /></a> <br />6. In the Choose Setup Type dialog box: </p> <li>To install the most common features, click Typical. </li> <li>To select the adapters you want to install, click Custom, and then proceed to the next step. </li> <li>To install all the features, click Complete. <p><strong>Important <br /></strong>To install only the adapter that you will use to interface with your enterprise application, you should perform a Custom installation.</p> <p><strong>Note <br /></strong>For this release, Typical and Complete options essentially perform the same action.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPpyI_nUCsb5ttK4Hl8naBr3wwqxHz3s_CxId8dv7VErpQcUOVuUsjGph7zuEqN4LFegWY4tKWyWN3FiIhq1UGc7rx49BgPSRneODmzclnwPx3acHlJW3yjqXb-w3hyPaA8Jp1ZusDzCE/s1600-h/clip_image012%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhawcNOfyowOUBOmYrFU5NMvQMIOh6bJKL5IqCiWIjV3r8ev4g6DFyMJg747LIkt9RabLXkYetqMmbg-PgJmsEkU43L3vmDQMyJLKO5q0MK0Uh7MPCli201PAJC66Ol4dde0HHq9xaD3rY/?imgmax=800" width="244" height="189" /></a> <br />7. Click Install. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQrg2dGbvXyS8eJxFVu5i5taKpXlxM_knbvcU8CIvisQBBwPU8bmQd6A4aHCnlwcIqFhQtAM_WsGBJ-v2cR_rZREuTvOGt39xDzHth0X7NCBCoL2i5RASGplRO_910vbdIj9VcZyEk-hI/s1600-h/clip_image013%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image013" border="0" alt="clip_image013" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi45aRAGRPCxq096pCfBACSIFciuvxpRIy5DzxuotVTl3EFpaH9Di9Qs8KHqV17NCCXjbaugdjoSWHxlE8oW-qmKicLLeRyEnZTzXjPIs1L0-8tVBJYpxZZo_FciNLmqGUjOikl56JoVHw/?imgmax=800" width="244" height="152" /></a> <br />8. In the Customer Experience Improvement Program dialog box specify I don't want to join the program at this time and click OK. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbl1GLu1XUUrMto7sKwRSMUQ57IV_ZvK6TQiAaAFuwL9RS35-LJ0AuBDmYxuMJyTug09b_iojXjkAI0WJuBPX6BgY3ZLkXe_9pg4vqwR6T3IyAEHiWZ-pAg5_yTors86v78IMz1xVo7a4/s1600-h/clip_image014%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image014" border="0" alt="clip_image014" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6FsjBKDqivClEyuYaupIofA0wDaCnZYGppVq9egfSowLoUEw8Jv0WhyDzhvCCCMGa6X_7HyT2quBefKT0mQHVGOG-yD6PgPwbsLYkg3hOv-9yHTYR8AHyhwocM9vsN2N6w5w6DUegrgs/?imgmax=800" width="244" height="189" /></a></p> <p><font color="#aaffaa" size="4">Configure BizTalk for the new Adapters</font></p> <p>Now that the new Adapters have been installed you expect them to appear in BizTalk Administration Console, nope!</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxz7QG-elVjmxFVA7Lb6yreaBCJSwUHgTFDvPmxjoD2fElzXYfMlm-VncuAPKK1bN_Z1vgJoK9xQZS6dn8xKSdz4REhfFqWgEc1IeIkxYcXQmTM5kEB9RQQtyDhY_lgwFVc2Zead24j9w/s1600-h/clip_image015%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image015" border="0" alt="clip_image015" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-cn8v57w60JEs0JUYnbHucNNXwopST35Q33KuiA6KN-OjC1fuao-289obJmoFUXXKP9VQtTvuMG_Qe36W7NUMzIA37SuuaY9CO9gWF8ElzmoehUp2Pjz9i0izhZssPt2voJAQKAocbQ/?imgmax=800" width="199" height="244" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgemcG6uWWjKoef_vAukQ7tIhCxFOWl25xVZtO7S3-Qizf6Q6qO4ZpDWmIcOyNyHTfOR53dJg7_cD3AixQkUQPCTy7zaJ2c4Oo_aN5IIvgfb4lEmv3JhDNhn0cG4y6Hl9YBLwTJrvwXjzg/s1600-h/clip_image016%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image016" border="0" alt="clip_image016" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU0SjqmMt9HYC4Bteiu9aJdHMsTvLZD8u0gRdmPu5y4Q9GWwqMJJIGSywFSH_JaAT1EjFI83tVckQDqniuWTobkZr5QprV1y4ttKZ3sIBmNztBRkxDDXAKb3TSRH1frUVqSQqrdXATex4/?imgmax=800" width="244" height="103" /></a> <br />1. Right click on Adapters, select New then select Adapter... </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUXj3dXusis1MfeHRdxwRvI1C3ZM1KD6NuCxEQwaKcuwieD1euLw42cCbf-l9jmE85uR6b3brfhcdwQTjgjdIxD4BFrvw7NdIci0Mkl45-ZSi7sMLCUU08NsJZTQEBPEHksZQDwV-cLZc/s1600-h/clip_image017%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image017" border="0" alt="clip_image017" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQrcSsWVejnE8ged_cpVtUe2u5oui5bqK8qYILsqcb2YNAb3Zjb-X2mWlCKG4211aF8GqqgKLlIEOl27ojJlLcIvShheyT46aojyYW0r-kF8GtMdw1yqwd5Ceg7cmWxQtljPYWQ7rAac/?imgmax=800" width="244" height="196" /></a> <br />2. Select the first adapter in the drop down list WCF-SQL and give it the same name of WCF-SQL </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQeDd4hc3YfyYDFFJHqSQvY02CFOK_X8jKU6LpIFDQoDXzpHPcWZ1wjLvhIm1JFRVp3iWQDaKseRjibVZ1-gYjALTr_Y5vyMjVtZqkfTYg13AAt525L-iXJnSaXE22VsHQN7zgcbSU-uM/s1600-h/clip_image018%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image018" border="0" alt="clip_image018" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1HILP6_-a9rI9WioWEyhz1hQqK6Pv3ll-LtrYwS7i9ErIXn4WxovD9FuChf_kSTIduqXESpySWXzANqaJrKP-6KfI3LIfvQKV88stZJkk6tznq9lqTzuVuaVUivnqcyy3hDaYiug2FIA/?imgmax=800" width="244" height="196" /></a> <br />3. Click OK. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ1Hu5oKletARIy1zCEKAJlBIwQfiLbPOvJbrsioO6324QHOLW9VewzR2iNUPZI9xl8be6i1-RZ-oeTgNOn2SiSOgVHDgexRKwJmuiylV3nPPs5NeauqawWGec0tAIsfXXAfHbiCrUtyw/s1600-h/clip_image019%5B3%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image019" border="0" alt="clip_image019" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3lYYSpgJQrzdY2iwngYj-ipD1P1dZHW90NF-ROSwgq0dT1RsVe3PXe7Rqs4YhN98SVAzLai0O3DE3uvyWzhr7ZpyaLkXtXIkLnbtSHn8aRbVmn27LA111Ohb5T2my_yoQhbEU5Yr3jGo/?imgmax=800" width="244" height="53" /></a></p> <p>4. Click OK. <br />5. Repeat steps on 1-4 for each adapter in the drop down list. </p> <p></p> </li> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com14tag:blogger.com,1999:blog-3998417675939903159.post-17659334721014344142009-08-03T22:40:00.001-07:002009-08-03T23:15:32.476-07:00ESB 2.0 Toolkit install batch File<h4>Assumption</h4> <p>Assumptions are made that everything is installed on the one server. <br />The following applications are installed in their default locations</p> <p>· Office 2007 <br />· vs2008 <br />· sql 2008 <br />· biztalk 2009 <br />· WSS 3.0 <br />· UDDI is not installed. <br /></p> <h3>Directory setup</h3> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit6LoQ1MRdtY0FtNtHTWohmhlphb7SNcvpwhJAmpEhMHTDC3OJrqnjOLzfobs8pgEHNnsbtF7rKPMPUz4HlXOIMtjYNKblfgX8FVS51-GaCvrPaPFFwaXBclCzkvkIiAZ8TpxxWgsKQHE/s1600-h/clip_image002%5B4%5D%5B2%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFimmiNDesABP0_aBc8pEBT2ssfDj9wgLjhdr9A9BgfP09QyptyziqQzhAEAC3upZqM_9u4BlwxfsQ0UAzwaHVgCUAv2QhVxsX5H-IEHCl2hslCgnaXY0t-uqf2DgVRGqGLf7Ak_NSrcw/?imgmax=800" width="177" height="130" /></a></p> <p>Biztalk2009 contains the contents of the biztalk 2009 ISO (for the UDDI install). <br />BizTalkESBToolKit2_0 contains all the msi required to install ESB 2.0 toolkit plus an unzip.ps1 script. <br />BizTalkESBToolKit2_0\projectFiles contains files that which replace source files to build on x86 platform.</p> <p><b>Installing UDDI</b></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE0GqHzpDrCG6HtqA-Kgrgzo2hA0oRxlDX1LVkoPnVNFutDzZdls9f3tLi3M568OPPxTh_ze5EV1P-VCZGAFy9zK6GEpM1ApXzbZiNnbx5wgTzWifi9Iq9DOE22VRuTGNps9ylsOAwGAM/s1600-h/clip_image002%5B7%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhkLCyeK-bsbeqvSmxJZOcT6l3TrfDc1O7WJ5-3W1uqv28_45KXyC5HghHslWNo6Xjr4Wh8WuPcdw0Gz8pLCQVPvE3ZLgFYc9i0b306-1e-GGkr8FdZtcdYnQUsvNvFFF6999boMTJzdI/?imgmax=800" width="556" height="450" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEPk3ADnbzTJhh85QAMmyUd4xRjgceeydlHJkhW-iaBzvB6Iu2RDA8zffnkeBLX8Pc8JaHYyPTs18LhJPHosmtHqgNamKlditzwfmk_z8FcA5Pj6IUfPeo6w0bJ3NNHShdHmgsrbwyuJw/s1600-h/clip_image004%5B6%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi39nklxS5eUW3jsgqEXx1PQWbAW0GpB-c-e_DLFcYvwHqyIISfp54HsoDmGP1SGINq3MsRTwBKcbyMl46XCyOBs0VtwYgmWTWZLQEbENurUNcxwYFjDdBk4dto_8xT8itPYqqp55rHh40/?imgmax=800" width="556" height="450" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLKi3-5-CPWqF_MLTpOiA0WJzAqhhaIRxOeeAI0wm5k_da1F7rDIO8X8PbbRE2cEfCXvfA9I_G6uI4T_ktWPbRCwi58_7Dk16-gRaE0YadffSpCSyupnH7qGQu1Ol0LpoX_FgOmVytg70/s1600-h/clip_image006%5B16%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8UFnnrW0hQVnIgjct9MAlESmIQ2wGwSk0rnFkEH6nry1xtlRCyYS-g06yw5iAe6ZZASkAFrU9dEbc77WiRes_7o3uvkZQF-1Mas8Wlwz10xbIUsDhSoANxrJ3KS1igcZl2AanoKsO9a4/?imgmax=800" width="556" height="450" /></a></p> <p>Uncheck Launch Microsoft UDDI Servers Configuration</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifcqBFGCw7nkuo5qssof-7RW4Kgi45ydniZxtA4Gn46CNlOu9Br1Ld2fYo2CU_7qZqfk81RzgOfVBLFQ3n1y5x0INiA7kvNG1f1EotLAZqL9rdHRiOFytGeMIZfCOt8q-JhFnNdjP3HKA/s1600-h/clip_image008%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3rY0hpcInY1vd4_yWlyVQ1QCSOSpGkh9nsiq7Gx9kV7i1sforaJDNyvRqWerswDm9VgilpWxdqwjbX1bwFGNYBtT2Mqj1scd9lX21P25EteQvBNHib-b3bY96kn8CcyA0baswRMsvprg/?imgmax=800" width="556" height="450" /></a></p> <p><b>The configuring UDDI</b> dialog will appear select <b>custom configuration</b>. Make sure that require <b>SSL for publication to this UDDI Services site</b> is not selected</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsy4fmJWkhNfLczd-bNt5eWaf6sYwP91NZNRIQ0XxpWeP4nzE8MT5ETt2SdZi-PCkijyx9gZ87PsiBpTajcpIqRmxP5l3-Oujah2r9Sj0FkcYWlyFS4IatRGwWlSzwNpDFe2sVZt95HQk/s1600-h/clip_image010%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2R8J9eXxWlBRvDHWCLB_FkdctqFfDHVBFcHfIoNJ-y6DyMve00r0eU6cyow31IkkzPOhb52J43CrHtcFjjGaFWOi-ynXayFgrCNsaQ1MKqzlIiVGlkYeNtugnKVHJnlk99cdduqY5ZPs/?imgmax=800" width="654" height="536" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiivwTCpCQjVfV9TNJeTHg_ogo4M6MUkMYN5kv_b2eo-LzDwmJY8thYt1wV404f-fGO-IMMED4Uc5oD-ZJMaPgs07oW1URjFSCGpAwfRFwuGyMmAYjWcVFcR14-GuLucQcW1Qly1qc2Ymc/s1600-h/clip_image012%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTLdJJW-KlmXzxbJEKo3iUgCRdYi2D15QWz64MD7l5LPtlHk2LnkTYXKLDCkuSj-LijY2_1JevktD-jZnvoJSVrq9YVyJRtZIBFm9ko4fEMCbcvrzSzL-FGLhFf8a_IGqKq1nM49pzxCs/?imgmax=800" width="654" height="536" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzM6n8uy7Nll4UdS55tSiehhJzgsOuUTseLKKmqMzRLGiagp4CN-JDeWDKF-uHC3sg12dqabHugzkG9eYzguLonxEDkA86yJv0GpUdcpuluMP64D4va0I57QhlRoESbV_cgQPcQ6fAWjs/s1600-h/clip_image014%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoW2IIDeMRy4aegcelc-IwFOtBUdX3aic0Dn-iH3EkEYS2PmVelRab7tuXnZGIeUOjSlxdsHqngTDk-SrecaoTGQg4zyHHZ_HljfAccol4VkY7ubwgvcQZSxGkJE5VuFhanhIku74riJs/?imgmax=800" width="654" height="536" /></a></p> <p>Apply configuration and close configuration window when finished</p> <p><b>SQLXML 4.0 SP1</b></p> <p>Click Run</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX0kSITrWcCda0kEKfUGc64muBK4nnbhmtF3RmI9ocJccWzFwjPJIA8d094DHrgoIS_6S3XY6g_aKQMM7_pRpanNx7HrDJSAlqCwARR4X5G_7EvqQeuLcO358C2ISmsRzEWaeFH5n04F0/s1600-h/clip_image016%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image016" border="0" alt="clip_image016" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisfYxqomxGlUb49pN841qQXgh8B8kfOOkMVvN_cuzFSlckZeQRpxGOvFsuN21fni0nNLD5qePQ4knoVYJs51NeIuMwER0GaojLmK27OzhluOcrPCtF5pTbRJPWk553j07LAXAP4GDeBg0/?imgmax=800" width="408" height="306" /></a></p> <p><b>ESB Configuration Tool</b></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBL6kBz5Ks2BskHwNLqGfvtYVlvrxSRnNNFB4aBiJuObfjWr1EQFrySMZXdm7i6bJZ55t3dJ-48I6J9n7QDRqR9itrmZI5INB-SwLAy6n9ME9b5T6HNKkSzcbhNJBxDUFlZ9_E2Lx_ZZk/s1600-h/clip_image018%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image018" border="0" alt="clip_image018" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj624R80GtNxpSlJZtIe74f7NFfIFqVcS-sInPls_ItvsL1aAPdGdnBFFMyfHLNda_n9FQeSunaDPWGsoffueGUYgy5-9pe1c4spfQLWvxVmwO5ChLEzjwnZC_eiTwfz1k6LR0tOZqrgBM/?imgmax=800" width="598" height="537" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIbeemXJEWqSXNfnQT-y0TU8tMlA0ZLgwc1tWBz5Ks5WEdWqTsgmZsrCyJ2GeOs0EXxMwWXsTuFWAOG2SQwhNZR3cLe4qXPnjqOaEv-xW9OtUX5ZvOAOr3Sj5hfMnY2bJnTjYpzX48FMs/s1600-h/clip_image020%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image020" border="0" alt="clip_image020" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2C_1lcJK1Rf4GMxAMLG2XbsiwmSUdYwV1Vj6O0pOMdBrH2NXPgYmVlOV5LDxDXuUGuWN4cIrr1pUYj_bVEXFtXSImyxjS_R5WReOA93K8M2y-zeyTRo8ljFqRT4ZF4xkgtZIGb9d2_E8/?imgmax=800" width="598" height="537" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh02paYrrEoVAZyzUXKdtxRc65VLw_fzxqj9ubYQUf6rWI8QNiOy_YEemYJLXvqymsqkPwSHsGGDfHRCDWnEl9yxSdvaVWxWXNkpD02NJjbjLHuUE6gGScZ2LWAq0JovCazj-mA-ckr0X8/s1600-h/clip_image022%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image022" border="0" alt="clip_image022" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQs3UU-7Rsmv-nrzua7jvVVVKhtFH2XArMBUwJkyntkX8Zhbq2DS_kcmROyBvBiH8N4-_tB7Km0QTYp_GZXcXUng3Tp5NQHmWShY6RYg_OZ8-N17yF7lcNoXTTEcC0nEzwyztA6fzvc0E/?imgmax=800" width="598" height="537" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiGp7laCWKcyvS7R9l1ef6GRaQGqy2w_f7v9GchR_GzlfjBtfxStmMNHg0VMuQeF-unRWqM9Sj3LrysChJJZIf-xpcql9aGrvcC8d1u4EYiI1pKw5tjz-dHhwYhcQqeVj8jrSwALloOJs/s1600-h/clip_image024%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image024" border="0" alt="clip_image024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBnLEWoGx-dIwCh7AOn1Z-oyMwyBwd2Ey54VCuT1U0Rd2QzOJdUVZoVcDlScIZ_RhxmB2jmB26iI72B_SyNDvo_CMHHeH4aSylxui_pY5x6tjHk6LqLgfnzSsiqiukEHK9t0EnzB_uvhY/?imgmax=800" width="598" height="537" /></a></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdKoqAVoG1EKZpqlt9m-rIpFi67vse34D6B8MecdSZ4iVlNBS39WFWT3cZQJ5jklX3ABK3KMOFNZUSLuYpD8OMaUSR9a6yq07lI3A0V89YHkHMIrxpW8SitfUBwz5ZsZ0WrIV0vjTaisA/s1600-h/clip_image026%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image026" border="0" alt="clip_image026" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh842JCkxcCInN88oVUz1csO1OCFvsHpA02qyb5NTFul_OQsgGT5tWv9pdZFE15AKcHN87sqrnRLlbJfWOWmXo53GUQJ9EXkoYvKr7IEjAvfB2o2kKmleG4Oce1ihRhtlQ9TxTqW_CHJpU/?imgmax=800" width="598" height="537" /></a></p> <p>Microsoft.Practices.ESB.UDDIPublisher.exe select <b>n</b> <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-tt-OXCVtnV6OgjKwaamCnOrPJpWUHiDDAHiiJIoDptVP0rLuuyN9FWGzy6CHBipnLNzU1pvFzkD6TX9KOSfYgZMLnZDB8jbIT4S8EIVRD71WRbtTzB7yB4wdhJWob8TgVL0E-NmhVAQ/s1600-h/clip_image028%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image028" border="0" alt="clip_image028" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnPAqQRlrGtT_d6kKhKFJR9hzsmrHU7Q6yL1GO72r1JhJtqs475mexM2YYZUOqh0lgHkvQ_U_LRWfoYeHwT7j0ctWpe81ldg_aiNnOlV7YizBNjZuArp1eYK_bL-iT_N_bbEVYW26FMsY/?imgmax=800" width="672" height="335" /></a><b></b></p> <p>Dynamic Resolution Install enter username and password for current user <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8XzBvo84jOGx3cl3uB-1niP6_LHbpnlOoICIdsdOhTUskZogQH-rOVzE9bQrFRiraZe3H7WPzVZQiCBsPfTJ8NiAuKcYxd5-jnRuesFu13z5EagS8CZJNAc0ivBve-NpD4gclecXafyM/s1600-h/clip_image030%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image030" border="0" alt="clip_image030" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimVPj2yM3pEyFehPWropSJRqC6y9n44spUpRe33XVPNYc5PxXljxqnjhpYo-AQbuzdST2SBCBXvuY-7X6Fj2C8EUiGdo_lsUUdicn1K0LCiikW5CD3hlleGrLz9Re_yWY6Bhs5qNmkENE/?imgmax=800" width="672" height="335" /></a></p> <p>Biztalk ESB UDDI Publishing Service <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA5wZbWxCh01NL69EMPeTGbpNDVGTXYAQUbL7lVPSnfZbR4yts8B89oAwUauVwkku-TVuX6BuFhWbVs9NZBwOBmQ-NnPrC8fsWW1aT5zfcP7HSDIAFE5r4Yu-h8Tiq8DJjPmOn89phpBY/s1600-h/image%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAJkeEEmVZAD-LOK7OCf4eL6Of4zLu0bP8xFM1LUKSn0gzZ5Mty5aVPDriVNe1r1mtwrY8FFEP3FBzfglprsSapgJNFgTZYYptgzocrUArN0PV6xrbfD8eSc93WwCrFNxP-N7wBTSGEPw/?imgmax=800" width="350" height="167" /></a> </p> <p><strong><font color="#80ff80" size="5">Batch File Script</font></strong></p> <p>c: <br />"c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -i </p> <p>IISRESET </p> <p>[BASEINSTALLDIR]Biztalk2009\setup /SetupXml [BASEINSTALLDIR]Biztalk2009\UDDI_x86\Setup.xml <br />"C:\Program Files\Microsoft UDDI Services\config\Configuration.exe" </p> <p>IISRESET </p> <p>[BASEINSTALLDIR]BizTalkESBToolkit2_0\MSChart.exe /passive <br />[BASEINSTALLDIR]BizTalkESBToolkit2_0\VsSDK_sfx.exe /passive <br />[BASEINSTALLDIR]BizTalkESBToolkit2_0\sqlxml_40_SP1.msi /passive <br />"[BASEINSTALLDIR]BizTalkESBToolKit2_0\BizTalk ESB Toolkit 2.0 Docs.msi" /passive <br />"[BASEINSTALLDIR]BizTalkESBToolKit2_0\BizTalk ESB Toolkit 2.0-x86.msi" /passive </p> <p>BTSTASK Importapp -Package:"c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.CORE.msi" /ApplicationName:Microsoft.Practices.ESB /overwrite <br />"c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.Core.msi" /passive </p> <p>BTSTASK Importapp -Package:"c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.JMS.msi" /ApplicationName:Microsoft.Practices.JMS /overwrite <br />"c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Microsoft.Practices.ESB.JMS.msi" /passive </p> <p>"c:\Program Files\Microsoft BizTalk Server 2009\Tracking\bm.exe" deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Exceptions.xml" <br />"c:\Program Files\Microsoft BizTalk Server 2009\Tracking\bm.exe" deploy-all -DefinitionFile:"C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bam\Microsoft.BizTalk.ESB.BAM.Itinerary.xml" </p> <p>cd "C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bin\" <br />ESBConfigurationTool.exe </p> <p>cd "c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\Bin" <br />Microsoft.Practices.ESB.UDDIPublisher.exe <br />cd [BASEINSTALLDIR] </p> <p>powershell.exe [BASEINSTALLDIR]BizTalkESBToolKit2_0\unzip.ps1 'c:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\ESBSource.zip' 'C:\Projects\Microsoft.Practices.ESB\' </p> <p>attrib -r -s -h "C:\Projects\Microsoft.Practices.ESB\\Keys\*.*" /d /s <br />attrib -r -s -h "C:\Projects\Microsoft.Practices.ESB\\Source\*.*" /d /s </p> <p>[BASEINSTALLDIR]BizTalkESBToolKit2_0\sn.exe -k "C:\Projects\Microsoft.Practices.ESB\Keys\Microsoft.Practices.ESB.snk" </p> <p>copy [BASEINSTALLDIR]BizTalkESBToolKit2_0\ProjectFiles\Web.config "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.Portal\" /Y <br />copy [BASEINSTALLDIR]BizTalkESBToolKit2_0\ProjectFiles\ESB.AlertService.csproj "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.AlertService\" /Y <br />copy [BASEINSTALLDIR]BizTalkESBToolKit2_0\ProjectFiles\Setup.vdproj "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.AlertService.Install\" /Y </p> <p>"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.AlertService\ESB.AlertService.sln" /build Debug <br />"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.UDDI.PublisherService\ESB.UDDI.PublisherService.sln" /build Debug </p> <p>"C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\ESB.AlertService.Install\Debug\setup.exe" /passive <br />"C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\\ESB.UDDI.PublisherService.Install\Debug\setup.exe" /passive </p> <p>cd "C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\" <br />Management_Install.cmd </p> <p>cd "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\" <br />devenv.exe /InstallVSTemplates "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\1033\ItineraryDsl.zip" <br />devenv.exe /InstallVSTemplates "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\1033\ItineraryDsl.zip" </p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com0tag:blogger.com,1999:blog-3998417675939903159.post-18469249655439919722009-08-03T22:09:00.001-07:002009-08-03T22:17:27.383-07:002006 to 2009 Upgrade failed due to BizTalk Group name changed<ol> <p> </p> <p>If you change the name of your BizTalk group from BizTalk Group to something else i.e. TestBiztalkGroup. The upgrade will fail.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCgr7HOFH3v0t8q1Qei1ILp9yKPHA7IpWv0hEX1crYawowRhx_m_4NetaIzhhRNADZ66TFRnKUjIVd0UzJKG6T3uYCe7sSCuVFGsPXhbmhTZOfSqEKEfhJVCA2dUNV5nUjdngghAyrMcE/s1600-h/clip_image001%5B4%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgFW_1q6yUCw3DMGIhojDu1AXWwLW0OtvxL1SjY0ya3mDv8_hiAftscazPoU2yT-u6Qr8cjHESPbSymN90_WYdGqYeNtZY6tdSghYj6aSkJ9kyeZlxgyS0W_1fEx6wLIVj8zNeyGVuDHE/?imgmax=800" width="244" height="112" /></a></p> <p><font size="4"><strong>Upgrade Prerequisites</strong></font></p> <li>If you have Developer Tools and SDK installed as part of your 2006 R2 installation the upgrade requires Microsoft Visual Studio 2008 with Service Pack 1. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj47IQ_A_YMT7FeF-oB_YaaRMrBaczgt8ULkjKjs8Kn7devsEHzlIEYRYyML03IrVKiFl_X2T5_1uQymwuPu1txWqlbHWnW27m8fT0GY3gO0HdMs9BiRokczme8sULem0ZUpPp5xLGo3Tc/s1600-h/clip_image002%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKcV1daKCS5coP8Z6DkiWt8NekC99d3fhv30dL6_yWITSTyxOz8uvqsfzF1kYJdy9C6vQc90lHK-vs1tHZnSd8cP-DSxtK0Eew8CG1OcIJrv3piRaexcs-NsP-UX1D-nVjtKajpMJk7g4/?imgmax=800" width="244" height="198" /></a></p> </li> <li>Stop the following Services <ol> <li>World Wide Web Publishing Service</li> <li>Rule Engine Update Service</li> <li>Stop All Biztalk Host Instances</li> </ol> <p>The steps to produce upgrade failure.</p> <p>Note: From an administration point of view backup/image all machines and objects that will be effected in the upgrade just in case something goes wrong. Trust me it can happen and has happened.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1RL1SNnToY2RziFVaBz-g2nGMwn2NxxcoaZsl6Y5xuaLIbRX7HFqjLX9Ie1ExX5SBoKVAbiX7hG5FhnH1ZsGrTkuAnA5anxuQZuiErKLoPy13PyHIL5nKJ49cstHz8rvl1vkqTdzODSA/s1600-h/clip_image003%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image003" border="0" alt="clip_image003" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIT6SSEgu67g8Mr3rnNQuLKZl8Ur7KPsKgZKgWY5mYApZI5wdjb2vT8Ez0kX6qZrFCtuRZ2XGzBQscoX3eS5usw9w0SwoISuxtjQ_8ztZRhCW9-OGCmEiqt-fIKUDCMjzPA2EpOQnvMxU/?imgmax=800" width="244" height="176" /></a></p> <p>Select Install Microsoft Biztalk Server 2009 on this computer.</p> <p>Select Next on the Customer Information dialog.</p> <p>Select Yes, I accept the terms of the license agreement then Next on the License Agreement dialog.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-O0mPQ1rfy4SVbXtx_JlOmdtnCjVdJw5J0PB59uTfC1tACaO5DazVqTeXYkELKXBTus8-qtoX5XeWvt8KnqOEIUAVKszYb5EKLZl_7qOQ5rBxo1AjYVU_rHbB054OCGMilqs7zhyCB0A/s1600-h/clip_image004%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzfrFHKoTlTWYzDP5X5dhWV-pXjyQojCOqbqt_DIf43Q9ByQK7BxHbGliecuLlP1y3fv58T2XRfjBrnq-GrzvEJUsvbKJ7s0-mq_sgryTAhDCWCQypHlRnlxKN-mkzdRgKOs_d1fPzZVk/?imgmax=800" width="244" height="198" /></a></p> <p>BizTalk Installation will detect that there is already a BizTalk 2006 R2 installation and will perform an upgrade. Now when you scroll to the bottom of the screen you will notice that there are only 2 databases present BizTalkMgmtDb and BizTalkRuleEngineDB.</p> <p><font color="#ff0000" size="3"><strong>Note: this is where you should stop continuing the upgrade and go back to BizTalk Server Administration and change the custom BizTalk Group name back to BizTalk Group.</strong></font></p> <p>I am continuing to show what will happen.</p> <p>Select Next on the Upgrade Summary dialog.</p> <p>Select Next on the Redistributable Prerequisites dialog.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUAs0F7XK28l2hpfelC-luXqBcoDyrBijLkc7EIi2oowudYHFk9FQ8ECI17iRVqAALbXASLLQUD5hyBDIlw9pbdMEvEOGeieM2MFDlp6GaveCx9M-QgHizdziMwTLNN3uKYwug0nE-QTA/s1600-h/clip_image005%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix4mygMRqyKh1gYoOzWh4APxs9EVdvwjnrBqoDmdE1ax9_uU-z97zWANgzqudL3IAvaSgkqp0oFN1g3fvNoR1c94TrPoUPQh7guMMRq4g6lVE0HpcRozM42OXHfoPq6-1x6FEG_xtCZKM/?imgmax=800" width="244" height="198" /></a></p> <p>Select Upgrade on the Summary dialog.</p> <p>Everythings looks like it is installing fine until you see this screen</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWxrQuHYeWJVxIzwQB_H6V07IZjyZsb1Y7gtFVJoi9-Q8JSjTOCYAVzevzozg18sKo9qOAtTh0w3mTnNOCm_PBfhnZAUV6S5VWU-7lrN9V99fMtNigz0adeXkCL0WXIFkIep_ZnmP-7JQ/s1600-h/clip_image006%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7wjHvktPAnkKSy3U7FfQQQTUToTR4f-aSAoep4hR00G1DWuHxk7glIcc-T9yhDrLhKkn1OSihs2cWRoI1nxHIF6uEAEr_hOpSl7kIteUr9Pa4b2QgDJoANEjKVaqL7ipcvvU4aZ9Bwkc/?imgmax=800" width="244" height="198" /></a></p> <p>Log File Errors</p> <p>(I have copied and pasted just the errors as log file is to large)</p> <p>[11:36:55 AM Info] Upgrade required for MGMTDB Database=BizTalkMgmtDb Server=BIZT2006TO2009 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=MSGBOXDB, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=TRACKINGDB, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=BAMPRIMARYIMPORTDB, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=BAMARCHIVE, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=BAMSTARSCHEMADB, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=TPMDB, Error: 0 </p> <p>[11:36:55 AM Info] Resolved database: Alias=RULEENGINEDB. </p> <p>[11:36:55 AM Info] Upgrade required for RULEENGINEDB Database=BizTalkRuleEngineDb Server=BIZT2006TO2009 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=BAMALERTSAPPLICATIONDB, Error: 0 </p> <p>[11:36:55 AM Warning] Failed to resolve database: Alias=BAMALERTSINSTANCEDB, Error: 0 </p> <p>[11:43:33 AM Info] MSI command line: ADDLOCAL=Documentation,BizTalk,WMI,Engine,Runtime,MOT,MSMQ,MsEDIAS2,MsEDIAS2StatusReporting,WCFAdapter,InfoWorkerApps,BAMPortal,WcfAdapterAdminTools,AdminTools,AdminAndMonitoring,MonitoringAndTracking,BizTalkAdminSnapIn,HealthActivityClient,BAMTools,PAM,AdditionalApps,SSOAdmin,SSOServer,RulesEngine,WssAdapterWS,OLAPNS,FBAMCLIENT,BAMEVENTAPI INSTALLDIR="C:\Program Files\Microsoft BizTalk Server 2006\" UPGRADE=1 PIDKEY="J6T48XCF7KQCGKDQV8874BJYB" USERNAME="Stargate" COMPANYNAME="Stargate Group" FILESINUSEERROR="" </p> <p>[11:43:33 AM Info] MSI command line is ADDLOCAL=Documentation,BizTalk,WMI,Engine,Runtime,MOT,MSMQ,MsEDIAS2,MsEDIAS2StatusReporting,WCFAdapter,InfoWorkerApps,BAMPortal,WcfAdapterAdminTools,AdminTools,AdminAndMonitoring,MonitoringAndTracking,BizTalkAdminSnapIn,HealthActivityClient,BAMTools,PAM,AdditionalApps,SSOAdmin,SSOServer,RulesEngine,WssAdapterWS,OLAPNS,FBAMCLIENT,BAMEVENTAPI INSTALLDIR="C:\Program Files\Microsoft BizTalk Server 2006\" UPGRADE=1 PIDKEY="J6T48XCF7KQCGKDQV8874BJYB" USERNAME="Stargate" COMPANYNAME="Stargate Group" FILESINUSEERROR="" </p> <p>[11:45:07 AM Error] AdminUpgrade::PostInstallUpgrade exception ErrorCode:-1061151936 Message:The MessageBox database does not have the correct version. </p> <p>[11:45:07 AM Info] AdminUpgrade: aborted message agent updates === Logging started at: 11:45:07 AM Tuesday, 4 August 2009 Build: 3.8.368.0 Calling process: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\EBZ15455.tmp\Setup.exe === The current user is BIZT2006TO2009\Administrator. Computer name: BIZT2006TO2009 OS Version: 5.2 Build: 3790 Service Pack: 2.0 Suite: 274 Product Type: 3 </p> <p>[11:45:07 AM Info] PostInstall upgrade component for Feature: WMI, returned message: The MessageBox database does not have the correct version. </p> <p>[11:45:07 AM Error] PostInstall upgrade component for Feature: WMI failed. Error: c0c01b40 </p> <p>[11:45:07 AM Info] Called FreeLibrary for WMI. Exiting CallPostInstallDllComponent. </p> <p>[11:45:07 AM Error] f:\bt\890\private\source\setup\prod\btssetup\voyager\setuphook\bts04upgrade.cpp(2808): 0XC0C01B40 </p> <p>[11:45:07 AM Error] Error in postinstall upgrade, Error: Configuration Upgrade component for Feature: WMI returned: The MessageBox database does not have the correct version. ., Hresult: c0c01b40 </p> <p>[11:45:07 AM Error] f:\bt\890\private\source\setup\prod\btssetup\voyager\setuphook\bts04upgrade.cpp(2684): 0XC0C01B40 </p> <p>[11:45:07 AM Info] PostHook function completed upgrading to BizTalk Server 2009 </p> <p>[11:45:07 AM Info] PostHook function failed upgrading to BizTalk Server 2009 with hr = c0c01b40 </p> <p>[11:45:07 AM Info] Storing recovery info for TaskInfo at stage 3 </p> <p>[11:45:07 AM Error] f:\bt\890\private\source\setup\prod\btssetup\voyager\setuphook\posthook.cpp(336): 0XC0C01B40 </p> <p>[11:45:07 AM Info] Posthook function returned: -1061151936. </p> <p>[11:45:07 AM Info] Posthook function failed and returned the following error message: Configuration Upgrade component for Feature: WMI returned: The MessageBox database does not have the correct version. . </p> <p>[11:45:07 AM Error] Some exception may have occured while performing the post upgrade configuration. The details are : Configuration Upgrade component for Feature: WMI returned: The MessageBox database does not have the correct version. . </p> <p>[11:45:07 AM Error] Some exception may have occured while performing the post upgrade configuration. The details are : Configuration Upgrade component for Feature: WMI returned: The MessageBox database does not have the correct version. . </p> <p>[11:45:07 AM Error] f:\bt\890\private\source\common\prod\btscommon\setup\wizard\exe\progressdlg.cpp(1489): FAILED hr = c0c01b40 === Logging stopped: 11:48:24 AM Tuesday, 4 August 2009 === </p> <p>The problem know is that you can not perform the upgrade again because there is no BizTalk 2006 R2 left and your system is corrupted.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjymAJHCj0WlyvvD2SvYo6leN7Jmgu1kpY6zYaFMuO__ZGZoYkmcY5lL0rwcuxYH-2a5EA9vOAwJdYTS4LEK0bLq6P9bDrltrnhbybcOJtWTKtqUy5q9O18YEsE5HLvZh_6jb8GJAeLkBk/s1600-h/clip_image007%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image007" border="0" alt="clip_image007" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY5q4lO2ppfAiJ6V-r0U_BdtHHwqA7S3pBINadvpYKzj77lUIsQu1SXcJj7qWRnQpVPOcYXhYPEjcB99c1bGbATE6aj8tCDk_CtDn393iizts34gdJHyONEYUYpocXLAC0bbwXzlcFRq4/?imgmax=800" width="244" height="96" /></a></p> <p><font size="4"><strong>Solution</strong></font></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd7hl5om2Bo3KIUn9nlA4wjQcRvg8cB-refeiXAR2iFZHablz6ioDoerMoI3FjQNtxj5dPvvVywuVZ0IMIyN8hf8osrC01UrgcHEwvtrZ_kuIp3fvYhcYwgbTrujHXba6DHtYlZH5AoOU/s1600-h/clip_image001%5B1%5D%5B2%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001[1]" border="0" alt="clip_image001[1]" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvT7ZdMG4CUKANQ3nG3KDYct-cA9mII-_tgkcIdAVtQ3MlSbm0GiRm0yoFRBzGVIsvXxeWy3ITtrW-dKvtIomvg5D9ez8zkNtVygoMEqizTYDR_zdXh3XAHqQ_yCJR_UhbeD0Ii8YFGsE/?imgmax=800" width="244" height="112" /></a></p> <p>Change the BizTalk Group name back to BizTalk Group</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc0Okyj0oCyeYWRxTrv3ZXCYVRNAPcDxl1CB1oSj2ONPl0nQDbUtTjPJwVfWx5WokWc1tWmbAE9dgysUkvqn043Ysd2ZxlHw5LUv589MXive5bUkiyUkayu00zWw7pYI1HUkJWFOnrozk/s1600-h/clip_image008%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0RqODMoTUHV0APR6TR_hCZtNWb6iwRfmFTCyEugxZJfUZAUiHI_syaWe65LxhbuK9B6hyphenhyphenhddWAy6sJ01sjl7EAZ2PZj_finjTru4K0opAm34tA1rq61uD9JdrSHHglo6R9jt6CjpObBI/?imgmax=800" width="244" height="118" /></a></p> <p>Start the upgrade process again when you get to the Update Summary you will see the following.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglO09UE4hJT02er9Ftmk0e3I0iUqxrPj3bQZGPvf_UhStj0Exya_ONlJZ6ezt9Y6dS3HIIW61gyARGiovc_ZPyHHpH6sp8JP4QXUSP-qEeMAIuFgeG1F74E4ewBr-DQ5ZeZc8Tc3JBWYg/s1600-h/clip_image009%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" border="0" alt="clip_image009" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTH4cbpBELoQn6E97XJPD7_ZdmTki-TpPA-7RE2iC2nGpY1Kxz1wnBD5SJ8nSfsMExRDjMw9MvPCw0nCIncPZLbyX5RnpkAUoZAPT3YAFKPnRvfEIU-6pjNoIk0G_rEYNEhVNoPvDWvI/?imgmax=800" width="244" height="198" /></a></p> <p>In this upgrade there are only 4 database. If you have HWS,BAM and other BizTalk components installed there will be more databases.</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAIda5wPpozHp8Rs-O63vCFlCj2QnEbXYvbBfuHYPEcttiufVTqTNfAIn9pTbT0RkJCy6meIYfhFX3zck-pHohw3q3Vpg9F-d6Hef-T74IO-RnIgeWu7OIotLNUjsYLC8O7XoMipxt4ow/s1600-h/clip_image010%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji2Pqnn1_LUibbmHyyPvNi3O9v5ym-mKkyfk13Iml9n9U9M-e1APmdabfKTISkZryXt7lJzIvxRzqEqIVHVWJjSFtlL81_JoEKV4HQnIsPCwCgXKIfRILXssxnCBmtuAkrLleUMJCSMVs/?imgmax=800" width="244" height="198" /></a></p> </li> </ol> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1tag:blogger.com,1999:blog-3998417675939903159.post-49091809365071181872009-07-28T17:24:00.001-07:002009-10-14T16:11:37.210-07:00Itinerary Service For Messaging Extender<p><strong>Step 1 - Creating a new Itinerary Service <br /></strong>Add Reference Microsoft.Practices.ESB.Itinerary from Microsoft BizTalk ESB Toolkit 2.0\Bin</p> <p></p> <p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnUlGdRg-CYzwjK8lyJQbXoz46Mef7LgXhg_wHWV90Cm9DnW1NVLMBp0tGMw7iWlMD0uQl8Y-a0q0tKXiliDa62Ex5wD398NCA0hem5sUQ0TiItA7vaMAwt2-2qKx2x10HvDRwsu-akXo/s1600-h/1.png"><img style="text-align: center; margin: 0px auto 10px; width: 277px; display: block; height: 153px; cursor: pointer" id="BLOGGER_PHOTO_ID_5363672061634239842" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnUlGdRg-CYzwjK8lyJQbXoz46Mef7LgXhg_wHWV90Cm9DnW1NVLMBp0tGMw7iWlMD0uQl8Y-a0q0tKXiliDa62Ex5wD398NCA0hem5sUQ0TiItA7vaMAwt2-2qKx2x10HvDRwsu-akXo/s320/1.png" /></a></p> <p>implement Microsoft.Practices.ESB.Itinerary.IMessagingService.</p> <br /> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:7a70e945-63f6-4671-a6f1-1bd5727e9dc4" class="wlWriterEditableSmartContent"><pre style="background-color:White;overflow: auto;"><span style="color: #0000FF;">using</span><span style="color: #000000;"> System;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Collections.Generic;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Linq;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> System.Text;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> Microsoft.Practices.ESB.Itinerary;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> Microsoft.BizTalk.Component.Interop;<br /></span><span style="color: #0000FF;">using</span><span style="color: #000000;"> Microsoft.BizTalk.Message.Interop;<br /><br /></span><span style="color: #0000FF;">namespace</span><span style="color: #000000;"> Sandbox.ESB<br />{<br /> </span><span style="color: #0000FF;">class</span><span style="color: #000000;"> LoggingService: IMessagingService<br /> {<br /> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> IBaseMessage Execute(IPipelineContext context, IBaseMessage msg, </span><span style="color: #0000FF;">string</span><span style="color: #000000;"> resolverString, IItineraryStep step)<br /> {<br /> </span><span style="color: #0000FF;">throw</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> NotImplementedException();<br /> }<br /> <br /> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">bool</span><span style="color: #000000;"> ShouldAdvanceStep(IItineraryStep step, IBaseMessage msg)<br /> {<br /> </span><span style="color: #0000FF;">throw</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> NotImplementedException();<br /> }<br /> <br /> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">string</span><span style="color: #000000;"> Name<br /> {<br /> </span><span style="color: #0000FF;">get</span><span style="color: #000000;"> { </span><span style="color: #0000FF;">throw</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> NotImplementedException(); }<br /> }<br /> <br /> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">bool</span><span style="color: #000000;"> SupportsDisassemble<br /> {<br /> </span><span style="color: #0000FF;">get</span><span style="color: #000000;"> { </span><span style="color: #0000FF;">throw</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> NotImplementedException(); }<br /> }<br /> }<br />}<br /><br /></span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div><br /><br /><br /><br /><br /><p>The following site <a href="http://msdn.microsoft.com/en-us/library/ee250158%28BTS.10%29.aspx">http://msdn.microsoft.com/en-us/library/ee250158%28BTS.10%29.aspx</a> explains each of the following methods that need to be implemented</p><br /><br /><p><b>Step 2 </b>Add the Itineray Service to the ESB.config</p><br /><br /><p><itineraryService id="00000000-0012-0004-1973-000000000001" name="Sandbox.ESB.Services.Logging" type="Sandbox.ESB.LoggingService, Sandbox.ESB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=354cb85f9213cd3b" scope="Messaging" stage="AllReceive"/></p><br /><br /><p><b>Step 3</b></p><br /><br /><p>Now in visual studio drop a Itinerary Service, select the Itinerary Service Extender to be Messaging Messaging Extender... </p><br /><br /><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQFHzFZdwZt7pbQxQ8GXKNPDHmeb8DqmbkeeTeOC-rNStxUWFvuL2MCxyFfX7uzDBJq5Ji3X0X-u-8ZLmhqBfMue2e-djI3UGSmLr12RLKmyR2AX5mKllrJ_419EPt4SA3nk7Ubn-vQyM/s1600-h/2.png"><img style="text-align: center; margin: 0px auto 10px; width: 320px; display: block; height: 110px; cursor: pointer" id="BLOGGER_PHOTO_ID_5363672438171454530" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQFHzFZdwZt7pbQxQ8GXKNPDHmeb8DqmbkeeTeOC-rNStxUWFvuL2MCxyFfX7uzDBJq5Ji3X0X-u-8ZLmhqBfMue2e-djI3UGSmLr12RLKmyR2AX5mKllrJ_419EPt4SA3nk7Ubn-vQyM/s320/2.png" /></a></p><br /><br /><p></p><br /><br /><p>When you go to chose the Service Name your Service should appear in the drop down list. If not it is possible that the ESB is configured to be using the SSO. Since the esb.config has changed, SSO does not automatically update itself. Go to Microsoft BizTalk ESB Toolkit 2.0\Bin\ESBConfigurationTool.exe and unconfigure and reconfigure SSO or just point to the file configuration source.</p><br /><br /><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUsDiH43O07A47KO0kDlI9AT9vxUtpM8ddExdrZ94lonmegvP6fwPws80Wx8w59F6jZTUxyo9g5EOTyK186OWx2Uewk7zsLW-YRuH21atzn9U_eR3kUjUvRnur01a2BTCN5hAz0d91u_0/s1600-h/3.png"><img style="text-align: center; margin: 0px auto 10px; width: 320px; display: block; height: 287px; cursor: pointer" id="BLOGGER_PHOTO_ID_5363672740270016818" border="0" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUsDiH43O07A47KO0kDlI9AT9vxUtpM8ddExdrZ94lonmegvP6fwPws80Wx8w59F6jZTUxyo9g5EOTyK186OWx2Uewk7zsLW-YRuH21atzn9U_eR3kUjUvRnur01a2BTCN5hAz0d91u_0/s320/3.png" /></a></p> Olof Szymczakhttp://www.blogger.com/profile/00200374014211537672noreply@blogger.com1