<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Debugging Internet</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/santhoshonline/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/santhoshonline/feed.xml</link>
    <description>All about Internet Applications and Debugging</description>
    <lastBuildDate>Mon, 13 Apr 2015 00:43:13 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows8 Desktop Keyboard Shortcuts</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/windows8-desktop-keyboard-shortcuts</link>
      <pubDate>Sat, 04 Aug 2012 20:49:34 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2012/08/04/windows8-desktop-keyboard-shortcuts/</guid>
      <description><![CDATA[I hope everyone of you have installed Windows8 on at least one of your machines by now. With the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: verdana,geneva;">I hope everyone of you have installed Windows8 on at least one of your machines by now. With the change in Design and Architecture, you will need to Keyboard Shortcuts to perform many tasks that you are used to with the Classic Start button OR Old versions of Windows.</span></p>
<p><span style="font-family: verdana,geneva;">To ease some of these frequent tasks and enjoy the experience and robustness of Windows8, I would like to point you to the Keyboard Shortcuts which will help you adapt to the Modern Design and use Windows8 in a more efficient way.</span></p>
<p><span style="font-family: verdana,geneva;">Some of the Shortcuts are already available with earlier versions of Windows.</span></p>
<h2><span style="color: #ff6600;"><strong>Enjoy your Windows8 Experience!!!</strong></span></h2>
<p>&nbsp;</p>
<table align="left" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="269" valign="top">
<p><b>Keyboard Shortcut</b></p>
</td>
<td width="610" valign="top">
<p><b>Details</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;</b><b>&nbsp;+ I</b></p>
</td>
<td width="610" valign="top">
<p><b>Window Restart, Shutdown, Sleep, Taskbar&nbsp;Notification Icons like Network, Sound Control, Brightness, Notifications, Keyboard.</b></p>
<p><b>&nbsp;</b></p>
<p><b>&nbsp;</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;</b><b>&nbsp;+ X</b></p>
</td>
<td width="610" valign="top">
<p><b>Menu&nbsp;for frequent Administrator Tasks</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows</b><b>&nbsp;+ 0</b></p>
</td>
<td width="610" valign="top">
<p><b>Opens 10<sup>th</sup> application on taskbar with&nbsp; Normal Privileges. You can use the following values for applications on Taskbar.</b></p>
<ol>
<li><b>1<sup>st</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>2<sup>nd</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>3<sup>rd</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>4<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View </b></li>
<li><b>5<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>6<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>7<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>8<sup>th</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>9<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
</ol>
<p><b>You can rearrange your applications on taskbar&nbsp; according your choice and priority to take advantage of this shortcut.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows +<b>&nbsp;</b>Ctrl + Shift +&nbsp;0</b></p>
</td>
<td width="610" valign="top">
<p><b>Opens 10<sup>th</sup> application on taskbar with&nbsp; Elevated Privileges. You can use the following values for applications on Taskbar.</b></p>
<ol>
<li><b>1<sup>st</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>2<sup>nd</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>3<sup>rd</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>4<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View </b></li>
<li><b>5<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>6<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>7<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
<li><b>8<sup>th</sup> Application on taskbar of Classic Desktop View</b></li>
<li><b>9<sup>th</sup>&nbsp; Application on taskbar of Classic Desktop View</b></li>
</ol>
<p><b>You can rearrange your applications on taskbar&nbsp; according your choice and priority to take advantage of this shortcut.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows</b><b>&nbsp;+ C</b></p>
</td>
<td width="610" valign="top">
<p><b>This shortcut gives you view the Settings, Devices, Start, Share &amp; Search. This is the same option that comes when you move the mouse to the extreme bottom right corner.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Ctrl + Shift + Esc</b></p>
</td>
<td width="610" valign="top">
<p><b>Task Manager</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>&nbsp; </b></p>
</td>
<td width="610" valign="top">
<p><b>Toggle between Modern Desktop &amp; Legacy Desktop</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows</b><b>&nbsp;+ D</b></p>
</td>
<td width="610" valign="top">
<p><b>Takes you to Legacy Windows Desktop.</b></p>
<p><b>If you press this key from the Modern Desktop, this takes you to the currently active application on the Legacy Desktop.</b></p>
<p><b>If you press this key from the Legacy Desktop, this displays the Desktop.</b></p>
<p><b>Pressing the same key combination, will Toggle Between the Legacy Desktop and Active Application on the Legacy Desktop</b></p>
<p><b>Only Legacy Desktop shown when all applications are in a minimized state</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows</b><b>&nbsp;+ B</b></p>
</td>
<td width="610" valign="top">
<p><b>From the Modern Desktop, this takes you to the currently active application on the Legacy Desktop.</b></p>
<p><b>If all application are in minimized state on Legacy Desktop, this command will take you to the Legacy Desktop.</b></p>
<p><b>No effect when used from a Legacy Desktop.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows + M</b></p>
</td>
<td width="610" valign="top">
<p><b>From the Modern Desktop, this takes you to the Legacy Desktop and minimizes all applications on the&nbsp; Legacy Desktop</b></p>
<p><b>When used from a Legacy Desktop, minimizes all applications.</b></p>
<p><b>If all application are in minimized state on Legacy Desktop, this command will take you to the Legacy&nbsp; Desktop.</b></p>
<p><b>&nbsp;</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;+ Q</b></p>
</td>
<td width="610" valign="top">
<p><b>Displays Apps windows with all apps and Search Bar</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;+ W</b></p>
</td>
<td width="610" valign="top">
<p><b>Displays Search Settings.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;+ E</b></p>
</td>
<td width="610" valign="top">
<p><b>Windows Explorer displaying Computer Folder. Same as clicking on My Computer. </b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows&nbsp;+ R</b></p>
</td>
<td width="610" valign="top">
<p><b>Display Run window.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ T</b></p>
</td>
<td width="610" valign="top">
<p><b>Displays the Window Group Thumbnails on your taskbar. This is equivalent of hovering the mouse over the Taskbar Icons.</b></p>
<p><b>Each time you press the&nbsp;Windows&nbsp;+ T combination, the next application group is&nbsp; displayed</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ U</b></p>
</td>
<td width="610" valign="top">
<p><b>Displays Ease of Access Center</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ P</b></p>
</td>
<td width="610" valign="top">
<p><b>Option to Extend the display.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ +</b></p>
</td>
<td width="610" valign="top">
<p><b>Zoom Windows</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ F</b></p>
</td>
<td width="610" valign="top">
<p><b>Search Files</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ H</b></p>
</td>
<td width="610" valign="top">
<p><b>Display Share options</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ K</b></p>
</td>
<td width="610" valign="top">
<p><b>Display Devices to Share with.</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ &lt;</b></p>
</td>
<td width="610" valign="top">
<p><b>Preview Legacy Desktop</b></p>
</td>
</tr>
<tr>
<td width="269" valign="top">
<p><b>Windows<b>&nbsp;</b>+ L</b></p>
</td>
<td width="610" valign="top">
<p><b>Lock the Computer</b></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to launch a process with CPU affinity set</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/how-to-launch-a-process-with-cpu-affinity-set</link>
      <pubDate>Thu, 24 Nov 2011 10:43:15 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2011/11/24/how-to-launch-a-process-with-cpu-affinity-set/</guid>
      <description><![CDATA[I&nbsp;was trying to get this internet explorer process launched so that it can use only 4...]]></description>
      <content:encoded><![CDATA[<p>I&nbsp;was trying to get this internet explorer process launched so that it can use only 4 processors on a 8 core machine. It wasnt as easy as I thought initially.</p>
<p>Finally I figured out an easy way and I am sure it will save a lot of time for others who require to do this.</p>
<p>There are few different methods we can do this.</p>
<ol>
<li>1st Method</li>
<ol>
<li>System wide we can set the boot.ini setting to use /numproc=4 so that the machine uses only 4 cores irrespecitve of the number of cores available (provided the available cores is more than 4)</li>
</ol>
<li>2nd Method</li>
<ol>
<li>Launch a command window and run the highligted commands from the next steps</li>
<li>Run <span style="background-color: #ffff00;">cd c:\program files (x86)\internet explorer<span style="background-color: #c0c0c0;">&nbsp;</span></span></li>
<li>Run <span style="background-color: #ffff00;">start /affinity&nbsp;F&nbsp;iexplore.exe</span></li>
<li>Now you can check the affinity from the task manager OR process explorer.</li>
</ol></ol>
<p>&nbsp;</p>
<p>If you are using start /affinity, you will need to specify the value for affinity which is a hexadecimal value. Here is a simple way of calculating this affinity value.</p>
<p>Here is how the processors will be numbered. This may be different based on the number of nodes. However the calculation remains the same. Please use terms cores/processors interchangeably.</p>
<p>&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="213">
<p>CPU ID</p>
</td>
<td valign="top" width="213">
<p align="center">Associated value (n)</p>
</td>
<td valign="top" width="213">
<p align="center">Formula (2<sup>n</sup>-1)</p>
</td>
<td valign="top" width="213">
<p align="center">Affinity in Hex (<b>h</b>)</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU0</p>
</td>
<td valign="top" width="213">
<p align="center">1</p>
</td>
<td valign="top" width="213">
<p align="center">1</p>
</td>
<td valign="top" width="213">
<p align="center">1</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU1</p>
</td>
<td valign="top" width="213">
<p align="center">2</p>
</td>
<td valign="top" width="213">
<p align="center">3</p>
</td>
<td valign="top" width="213">
<p align="center">3</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU2</p>
</td>
<td valign="top" width="213">
<p align="center">4</p>
</td>
<td valign="top" width="213">
<p align="center">7</p>
</td>
<td valign="top" width="213">
<p align="center">7</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU3</p>
</td>
<td valign="top" width="213">
<p align="center">8</p>
</td>
<td valign="top" width="213">
<p align="center">15</p>
</td>
<td valign="top" width="213">
<p align="center">F</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU4</p>
</td>
<td valign="top" width="213">
<p align="center">16</p>
</td>
<td valign="top" width="213">
<p align="center">31</p>
</td>
<td valign="top" width="213">
<p align="center">1F</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU5</p>
</td>
<td valign="top" width="213">
<p align="center">32</p>
</td>
<td valign="top" width="213">
<p align="center">63</p>
</td>
<td valign="top" width="213">
<p align="center">3F</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU6</p>
</td>
<td valign="top" width="213">
<p align="center">64</p>
</td>
<td valign="top" width="213">
<p align="center">127</p>
</td>
<td valign="top" width="213">
<p align="center">7F</p>
</td>
</tr>
<tr>
<td valign="top" width="213">
<p>CPU7</p>
</td>
<td valign="top" width="213">
<p align="center">128</p>
</td>
<td valign="top" width="213">
<p align="center">255</p>
</td>
<td valign="top" width="213">
<p align="center">FF</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Based on the above formula, you can run the following command. Replace <b>h</b><b> </b>with the value in the Affinity column. This will result in using all the CPU&rsquo;s listed above the specified value including the current.</p>
<p>&nbsp;</p>
<p>Example:</p>
<p>If you specify a value of 1F&nbsp; for affinity, it will use CPU4, CPU3, CPU2, CPU2 and CPU0</p>
<p>&nbsp;</p>
<p>If you want to use specific CPU&rsquo;s, you will need to SUM the associated values and use the corresponding HEX value.</p>
<p>Example:</p>
<p>If you want to run a process on CPU0 &amp; CPU4, you can sum the values</p>
<p>&nbsp;</p>
<p>Start /affinity <b>h</b> iexplore.exe</p>
<p>&nbsp;</p>
<p>Enjoy launching processes with CPU affinity :)</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How to prevent IIS 6.0 from revealing internal address</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/how-to-prevent-iis-6-0-from-revealing-internal-address</link>
      <pubDate>Thu, 14 Apr 2011 15:45:08 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2011/04/14/how-to-prevent-iis-6-0-from-revealing-internal-address/</guid>
      <description><![CDATA[I have come across an interesting issue where the internal ip address is revealed when using OPENSSL...]]></description>
      <content:encoded><![CDATA[<p>I have come across an interesting issue where the internal ip address is revealed when using OPENSSL and HTTP 1.0. However if we use HTTP 1.1 then IIS does not reveal the address.</p>
<p>Here is what happens when I use the OPENSSL</p>
<p>openssl s_client -connect 10.x.y.z:443</p>
<p>GET /Test<br />&lt;head&gt;&lt;title&gt;Document Moved&lt;/title&gt;&lt;/head&gt;<br />&lt;body&gt;&lt;h1&gt;Object Moved&lt;/h1&gt;This document may be found &lt;a HREF="<a href="https://10.x.y.z/Test/&quot;&gt;here&lt;/a&gt;&lt;/body&gt;read:errno=0">https://10.x.y.z/Test/"&gt;here&lt;/a&gt;&lt;/body&gt;read:errno=0</a></p>
<p>&nbsp;</p>
<p>How to prevent this?</p>
<p>You will need to host header on the website that you have issues with. You have to set the host header using the adsutil.vbs script as follows.</p>
<p>cscript c:\inetpub\adminscripts\adsuitl.vbs set w3svc/&lt;siteidentifier&gt;/SecureBindings ":443:myhostname"</p>
<p>Make sure the host header that you set here, eg:myhostname is resolving to the ip adress of the IIS and you can browse the secured website using the specified host header.</p>
<p>Note: &lt;siteidentifier&gt; is the numeric value that you can obtain from the IIS6 Manager.</p>
<p>&nbsp;</p>
<p>Important: If you make changes to the host header from the IIS manager, you may have to re-run the above command. </p>
<p>Setting the host header using the IIS manager on Secure Bindings does not yield any good results. Setting through the above command should be the way.</p>
<p>&nbsp;</p>
<p>After the host header is set, you will see the results similar to the following</p>
<p>GET /Test<br />&lt;h1&gt;Bad Request (Invalid Hostname)&lt;/h1&gt;read:errno=0</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>HowTo: WinInet ETW logging (Analytic Logging)</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/howto-wininet-etw-logging-analytic-logging</link>
      <pubDate>Thu, 08 Jul 2010 13:34:00 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2010/07/08/howto-wininet-etw-logging-analytic-logging/</guid>
      <description><![CDATA[&nbsp;
Here is a HowTo on Collecting WinInet Tracing on Windows Vista, Windows 7, Windows 2008...]]></description>
      <content:encoded><![CDATA[<h4>&nbsp;</h4>
<h4>Here is a HowTo on Collecting WinInet Tracing on Windows Vista, Windows 7, Windows 2008 Server and Windows Server 2008 R2. If you require to collect this log, you can enable this log just before the issue and disable soon after the repro, that will provide more information. Here are the screenshots for enabling this.</h4>
<p>&nbsp;</p>
<h4>1) Open Event Viewer and Select Applications and Services Logs and then Click on View Menu, Check the &ldquo;Show Analytic and Debug Logs&rdquo;.</h4>
<h4><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/7028.clip_image002_2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/7028.clip_5F00_image002_5F00_2.jpg"><img height="482" width="336" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/8105.clip_image002_thumb.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/8105.clip_5F00_image002_5F00_thumb.jpg" alt="clip_image002" border="0" title="clip_image002" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /></a></h4>
<p>&nbsp;</p>
<h4>2) Under Applications and Services Logs, expand Microsoft and then Windows</h4>
<h4>3) <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/5383.clip_image004_2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/5383.clip_5F00_image004_5F00_2.jpg"><img height="278" width="426" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/8055.clip_image004_thumb.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/8055.clip_5F00_image004_5F00_thumb.jpg" alt="clip_image004" border="0" title="clip_image004" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /></a></h4>
<p>&nbsp;</p>
<h4>4) Under Windows, Select WinInet and expand. Then right click on the Analytic and Select Enable Log.</h4>
<h4>5) <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/5824.clip_image006_2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/5824.clip_5F00_image006_5F00_2.jpg"><img height="378" width="442" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/7573.clip_image006_thumb.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/7573.clip_5F00_image006_5F00_thumb.jpg" alt="clip_image006" border="0" title="clip_image006" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /></a></h4>
<p>&nbsp;</p>
<h4>6) Then select &ldquo;Disable Log&rdquo; and save all events to a file in evtx format or .csv for&nbsp;easy viewing.</h4>
<h4>7) <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/8078.clip_image008_2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/8078.clip_5F00_image008_5F00_2.jpg"><img height="373" width="442" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/4606.clip_image008_thumb.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/4606.clip_5F00_image008_5F00_thumb.jpg" alt="clip_image008" border="0" title="clip_image008" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /></a></h4>
<p>&nbsp;</p>
<h4>By default the size of the buffer is set to 1028KB. I would suggest that this value be increased to 25MB just to make sure we don&rsquo;t end up overwriting&nbsp; the information because of a small buffer.</h4>
<h4><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/6036.clip_image010_2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/6036.clip_5F00_image010_5F00_2.jpg"><img height="466" width="525" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/2577.clip_image010_thumb.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/2577.clip_5F00_image010_5F00_thumb.jpg" alt="clip_image010" border="0" title="clip_image010" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" /></a></h4>]]></content:encoded>
    </item>
    <item>
      <title>HowTo: netTcpBinding on IIS and things to remember</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/howto-nettcpbinding-on-iis-and-things-to-remember</link>
      <pubDate>Thu, 01 Jul 2010 15:19:40 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2010/07/01/howto-nettcpbinding-on-iis-and-things-to-remember/</guid>
      <description><![CDATA[&#160;  Configuring netTcpBinding on IIS requires IIS7. You can refer the article for more...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <h4 align="justify">Configuring netTcpBinding on IIS requires IIS7. You can refer the article for <a href="https://msdn.microsoft.com/en-us/library/ms730158.aspx">more information</a> on platform dependencies. </h4>  <h2><strong></strong></h2>  <h2><strong>Requirements to get netTcpBinding on IIS7 work.</strong> </h2>  <h4>&#160;</h4>  <h4>Make sure the following service in the services snap-in are started</h4>  <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/2146.image_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/2146.image_5F00_4.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://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/2664.image_thumb_1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/2664.image_5F00_thumb_5F00_1.png" width="711" height="57" /></a></p>  <p></p>  <h4>Here is the configuration on the IIS –&gt; Website –&gt; Site Bindings</h4>  <h4>We need to add a net.tcp binding for 808:*</h4>  <p align="justify"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/1513.image_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/1513.image_5F00_2.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://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/4336.image_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/4336.image_5F00_thumb.png" width="674" height="201" /></a> </p>  <h4>Here is the settings required on the application under IIS. The name of my sample application is NTLMWCFService. The <font color="#0000ff">EnabledProtocols</font> needs to be set to <font color="#0000ff">net.tcp. </font></h4>  <h5><strong><u><font color="#ff0000">*****NOTE***** net.tcp must be in lower case as shown here. *****</font></u></strong></h5>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/3162.image_14.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/3162.image_5F00_14.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://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/5241.image_thumb_6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/5241.image_5F00_thumb_5F00_6.png" width="579" height="293" /></a> </p>  <h4>Application pool settings on IIS7. </h4>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/4744.image_12.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/4744.image_5F00_12.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://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/21/68/metablogapi/2626.image_thumb_5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-21-68-metablogapi/2626.image_5F00_thumb_5F00_5.png" width="685" height="172" /></a> </p>  <p></p>  <h5 align="justify">NOTE: If you are using netTcpBinding along with wsHttpBinding on IIS7 with application pool running in Classic Mode, you may notice the “<font color="#ff0000">Server Application Unavailable</font>” errors. This happens if the first request to the application pool is served for a request coming over netTcpBinding. However if the first request for the application pool comes for a http resource served by .net framework, you will not notice this issue.</h5>  <p>&#160;</p>  <h4><u><em>Here is system.serviceModel section for the web.config</em></u></h4>  <p></p>  <h4>   <p>&lt;system.serviceModel&gt;      <br />&#160; &lt;bindings&gt;       <br />&#160;&#160;&#160; &lt;netTcpBinding&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;NewBinding1&quot; /&gt;       <br />&#160;&#160;&#160; &lt;/netTcpBinding&gt;       <br />&#160;&#160;&#160; &lt;wsHttpBinding&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;NTLMWCF_wsHTTPBinding&quot;&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security mode=&quot;Transport&quot;&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;transport clientCredentialType=&quot;Windows&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;       <br />&#160;&#160;&#160; &lt;/wsHttpBinding&gt;       <br />&#160; &lt;/bindings&gt;       <br />&#160; &lt;services&gt;       <br />&#160;&#160;&#160; &lt;service behaviorConfiguration=&quot;NTLMWCFBehavior&quot; name=&quot;NTLMWCF&quot;&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;endpoint binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NewBinding1&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;INTLMWCF&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;endpoint address=&quot;mex&quot; binding=&quot;mexTcpBinding&quot; bindingConfiguration=&quot;&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;IMetadataExchange&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;endpoint address=&quot;&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;NTLMWCF_wsHTTPBinding&quot;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;INTLMWCF&quot;&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;/endpoint&gt;       <br />&#160;&#160;&#160; &lt;/service&gt;       <br />&#160; &lt;/services&gt;       <br />&#160; &lt;behaviors&gt;       <br />&#160;&#160;&#160; &lt;serviceBehaviors&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;behavior name=&quot;NTLMWCFBehavior&quot;&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;serviceDebug includeExceptionDetailInFaults=&quot;false&quot; /&gt;       <br />&#160;&#160;&#160;&#160;&#160; &lt;/behavior&gt;       <br />&#160;&#160;&#160; &lt;/serviceBehaviors&gt;       <br />&#160; &lt;/behaviors&gt;       <br />&lt;/system.serviceModel&gt;</p>    <p>&#160;</p>    <p><u><em>Here is the NTLMWCF.svc file</em></u></p>    <p>&lt;%@ ServiceHost Language=&quot;VB&quot; Service=&quot;NTLMWCF&quot; %&gt; </p>    <p>Imports System.ServiceModel </p>    <p>' NOTE: If you change the class name &quot;INTLMWCF&quot; here, you must also update the reference to &quot;INTLMWCF&quot; in Web.config.      <br />&lt;ServiceContract()&gt; _       <br />Public Interface INTLMWCF </p>    <p>&#160;&#160;&#160; &lt;OperationContract()&gt; _      <br />&#160;&#160;&#160; Function DoWork() As String </p>    <p>End Interface </p>    <p>' NOTE: If you change the class name &quot;NTLMWCF&quot; here, you must also update the reference to &quot;NTLMWCF&quot; in Web.config and in the associated .svc file.      <br />Public Class NTLMWCF       <br />&#160;&#160;&#160; Implements INTLMWCF </p>    <p>&#160;&#160;&#160; Public Function DoWork() As String Implements INTLMWCF.DoWork      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return &quot;I am @work&quot;       <br />&#160;&#160;&#160; End Function </p>    <p>End Class</p> </h4>  <p></p>  <h4></h4>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p>&#160;</p>  <h4><u><em>Here is the client file Module1.vb</em></u></h4>  <p></p>  <h4>   <p>Imports System.Security.Cryptography.X509Certificates </p> </h4>  <p></p>  <h4>Module Module1 </h4>  <h4>&#160;&#160;&#160; Sub Main()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.Net.ServicePointManager.ServerCertificateValidationCallback = DirectCast([Delegate].Combine(System.Net.ServicePointManager.ServerCertificateValidationCallback, New System.Net.Security.RemoteCertificateValidationCallback(AddressOf RemoteCertValidate)), System.Net.Security.RemoteCertificateValidationCallback)</h4>  <p><u><strong><font color="#ff0000">‘if you change the application pool to run under classic pipeline mode in IIS7, the following call to the WSHttpBinding will fail.</font></strong></u></p>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; callService(&quot;NetTcpBinding_INTLMWCF&quot;)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; callService(&quot;WSHttpBinding_INTLMWCF&quot;)</h4>  <h4>&#160;&#160;&#160; End Sub</h4>  <h4>&#160;&#160;&#160; Function RemoteCertValidate(ByVal sender As Object, ByVal cert As X509Certificate, ByVal chain As X509Chain, ByVal error1 As System.Net.Security.SslPolicyErrors) As Boolean</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return True</h4>  <h4>&#160;&#160;&#160; End Function</h4>  <h4>&#160;&#160;&#160; Function callService(ByVal binding As String) As Boolean</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim client As New ServiceReference1.NTLMWCFClient(binding)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(client.DoWork())</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; client.Close()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.ReadLine()</h4>  <h4>&#160;&#160;&#160; End Function</h4>  <h4>End Module</h4>  <p>&#160;</p>  <h4><em><u>Here is the client’s app.config</u></em></h4>  <p></p>  <h4>   <p>&lt;system.serviceModel&gt;</p> </h4>  <p></p>  <h4>&#160;&#160;&#160; &lt;bindings&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;netTcpBinding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;NetTcpBinding_INTLMWCF&quot; closeTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; openTimeout=&quot;00:01:00&quot; receiveTimeout=&quot;00:10:00&quot; sendTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; transactionFlow=&quot;false&quot; transferMode=&quot;Buffered&quot; transactionProtocol=&quot;OleTransactions&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; hostNameComparisonMode=&quot;StrongWildcard&quot; listenBacklog=&quot;10&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBufferPoolSize=&quot;524288&quot; maxBufferSize=&quot;65536&quot; maxConnections=&quot;10&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxReceivedMessageSize=&quot;65536&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;readerQuotas maxDepth=&quot;32&quot; maxStringContentLength=&quot;8192&quot; maxArrayLength=&quot;16384&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBytesPerRead=&quot;4096&quot; maxNameTableCharCount=&quot;16384&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;reliableSession ordered=&quot;true&quot; inactivityTimeout=&quot;00:10:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enabled=&quot;false&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security mode=&quot;Transport&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;transport clientCredentialType=&quot;Windows&quot; protectionLevel=&quot;EncryptAndSign&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;message clientCredentialType=&quot;Windows&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/netTcpBinding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;wsHttpBinding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;WSHttpBinding_INTLMWCF&quot; closeTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; openTimeout=&quot;00:01:00&quot; receiveTimeout=&quot;00:10:00&quot; sendTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bypassProxyOnLocal=&quot;false&quot; transactionFlow=&quot;false&quot; hostNameComparisonMode=&quot;StrongWildcard&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBufferPoolSize=&quot;524288&quot; maxReceivedMessageSize=&quot;65536&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; messageEncoding=&quot;Text&quot; textEncoding=&quot;utf-8&quot; useDefaultWebProxy=&quot;true&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; allowCookies=&quot;false&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;readerQuotas maxDepth=&quot;32&quot; maxStringContentLength=&quot;8192&quot; maxArrayLength=&quot;16384&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBytesPerRead=&quot;4096&quot; maxNameTableCharCount=&quot;16384&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;reliableSession ordered=&quot;true&quot; inactivityTimeout=&quot;00:10:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enabled=&quot;false&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security mode=&quot;Transport&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; realm=&quot;&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;message clientCredentialType=&quot;Windows&quot; negotiateServiceCredential=&quot;true&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; establishSecurityContext=&quot;true&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/wsHttpBinding&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/bindings&gt;</h4>  <h4>&#160;&#160;&#160; &lt;client&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;endpoint address=&quot;net.tcp://myIISServer.myDomain.com/NTLMWCFService/NTLMWCF.svc&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; binding=&quot;netTcpBinding&quot; bindingConfiguration=&quot;NetTcpBinding_INTLMWCF&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;ServiceReference1.INTLMWCF&quot; name=&quot;NetTcpBinding_INTLMWCF&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servicePrincipalName value=&quot;host/myIISServer.myDomain.com&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/endpoint&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;endpoint address=&quot;<a href="https://santhosh.fareast.corp.microsoft.com/NTLMWCFService/NTLMWCF.svc&quot;">https://myIISServer.myDomain.com/NTLMWCFService/NTLMWCF.svc&quot;</a></h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_INTLMWCF&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;ServiceReference1.INTLMWCF&quot; name=&quot;WSHttpBinding_INTLMWCF&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servicePrincipalName value=&quot;host/myIISServer.myDomain.com&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/endpoint&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/client&gt;</h4>  <h4>&lt;/system.serviceModel&gt;</h4>]]></content:encoded>
    </item>
    <item>
      <title>WCF: wsHttpBinding with Windows Authentication.</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/wcf-wshttpbinding-with-windows-authentication</link>
      <pubDate>Tue, 29 Jun 2010 12:24:40 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2010/06/29/wcf-wshttpbinding-with-windows-authentication/</guid>
      <description><![CDATA[How to configure wsHttpBinding with Windows Authentication:  &#160;  Here is a simple service...]]></description>
      <content:encoded><![CDATA[<h2>How to configure wsHttpBinding with Windows Authentication:</h2>  <h3>&#160;</h3>  <h3>Here is a simple service configured on IIS with windows authentication. When using wsHttpBinding, the security mode must be “Transport” for Windows Authentication on IIS to be used. Also the website needs to have a server certificate configured.</h3>  <p>&#160;</p>  <p><strong>If you use any other security mode you will receive the following error message.</strong></p>  <p><i><strong><font color="#ff0000">Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service.</font></strong></i></p>  <p>&#160;</p>  <p><strong>If you are receiving the following error message, make sure the website bindings are configured for https.</strong></p>  <p><i><strong><font color="#ff0000">Could not find a base address that matches scheme https for the endpoint with binding WSHttpBinding. Registered base address schemes are [http].</font></strong></i></p>  <p>&#160;</p>  <p><font color="#0000ff">Filename: Service.svc</font></p>  <h4>&lt;%@ ServiceHost Language=&quot;VB&quot; Debug=&quot;true&quot; Service=&quot;Service&quot; CodeBehind=&quot;~/App_Code/Service.vb&quot; %&gt;</h4>  <p><font color="#0000ff">Filename: IService.vb</font></p>  <h4></h4>  <h4>' NOTE: If you change the interface name &quot;IService&quot; here, you must also update the reference to &quot;IService&quot; in Web.config.</h4>  <h4>&lt;ServiceContract()&gt; _</h4>  <h4>Public Interface IService </h4>  <h4>&#160;&#160;&#160; &lt;OperationContract()&gt; _</h4>  <h4>&#160;&#160;&#160; Function GetData(ByVal value As Integer) As String </h4>  <h4>&#160;&#160;&#160; &lt;OperationContract()&gt; _</h4>  <h4>&#160;&#160;&#160; Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType </h4>  <h4>&#160;&#160;&#160; ' TODO: Add your service operations here </h4>  <h4>End Interface </h4>  <h4>' Use a data contract as illustrated in the sample below to add composite types to service operations.</h4>  <h4>&lt;DataContract()&gt; _</h4>  <h4>Public Class CompositeType </h4>  <h4>&#160;&#160;&#160; Private boolValueField As Boolean</h4>  <h4>&#160;&#160;&#160; Private stringValueField As String </h4>  <h4>&#160;&#160;&#160; &lt;DataMember()&gt; _</h4>  <h4>&#160;&#160;&#160; Public Property BoolValue() As Boolean</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Get</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return Me.boolValueField</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; End Get</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Set(ByVal value As Boolean)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Me.boolValueField = value</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; End Set</h4>  <h4>&#160;&#160;&#160; End Property </h4>  <h4>&#160;&#160;&#160; &lt;DataMember()&gt; _</h4>  <h4>&#160;&#160;&#160; Public Property StringValue() As String</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Get</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return Me.stringValueField</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; End Get</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Set(ByVal value As String)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Me.stringValueField = value</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; End Set</h4>  <h4>&#160;&#160;&#160; End Property </h4>  <h4>End Class</h4>  <h4>&#160;</h4>  <p><font color="#0000ff">Filename: Service.vb</font></p>  <p></p>  <h4>' NOTE: If you change the class name &quot;Service&quot; here, you must also update the reference to &quot;Service&quot; in Web.config and in the associated .svc file.</h4>  <h4>Public Class Service</h4>  <h4>&#160;&#160;&#160; Implements IService </h4>  <h4>&#160;&#160;&#160; Public Sub New()</h4>  <h4>&#160;&#160;&#160; End Sub </h4>  <h4>&#160;&#160;&#160; Public Function GetData(ByVal value As Integer) As String Implements IService.GetData</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return String.Format(&quot;You entered: {0}&quot;, value)</h4>  <h4>&#160;&#160;&#160; End Function </h4>  <h4>&#160;&#160;&#160; Public Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType Implements IService.GetDataUsingDataContract</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; If composite.BoolValue Then</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; composite.StringValue = (composite.StringValue &amp; &quot;Suffix&quot;)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; End If</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return composite</h4>  <h4>&#160;&#160;&#160; End Function </h4>  <h4>End Class</h4>  <p><font color="#0000ff">Filename: web.config</font></p>  <p><font color="#0000ff">&lt;!—The system.serviceModel section can be replaced with the following --&gt;</font></p>  <h4>&lt;system.serviceModel&gt;</h4>  <h4>&#160; &lt;bindings&gt;</h4>  <h4>&#160;&#160;&#160; &lt;wsHttpBinding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;NewBinding0&quot;&gt;</h4>  <p>&lt;!-- When using wsHttpBinding, the security mode must be “Transport” for Windows Authentication on IIS to be used. Also the website needs to have a server certificate configured. --&gt;</p>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security mode=&quot;Transport&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#800040"> &lt;transport clientCredentialType=&quot;Windows&quot;/&gt;</font></h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/wsHttpBinding&gt;</h4>  <h4>&#160; &lt;/bindings&gt;</h4>  <h4>&#160; &lt;services&gt;</h4>  <h4>&#160;&#160;&#160; &lt;service behaviorConfiguration=&quot;ServiceBehavior&quot; name=&quot;Service&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160; &lt;endpoint binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;NewBinding0&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;IService&quot; /&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/service&gt;</h4>  <h4>&#160; &lt;/services&gt;</h4>  <h4>&#160; &lt;behaviors&gt;</h4>  <h4>&#160;&#160;&#160; &lt;serviceBehaviors&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160; &lt;behavior name=&quot;ServiceBehavior&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;serviceMetadata httpGetEnabled=&quot;true&quot;/&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;!-- To receive exception details in faults for debugging purposes, set the value below to true.&#160; Set to false before deployment to avoid disclosing exception information --&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;serviceDebug includeExceptionDetailInFaults=&quot;false&quot;/&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160; &lt;/behavior&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/serviceBehaviors&gt;</h4>  <h4>&#160; &lt;/behaviors&gt;</h4>  <h4>&lt;/system.serviceModel&gt;</h4>  <p>&#160;</p>  <p>Filename: Client.vb</p>  <p>‘You might receive errors relating to the server certificate when the name on the server certificate does not match the name used in the application endpoint address.</p>  <p><font color="#ff0000"><strong>Could not establish trust relationship for the SSL/TLS secure channel with authority 'myIISServer.myDomain.com'.</strong></font></p>  <p><strong><font color="#000000">Make sure you are adding the RemoteCertValidate method and declare the ServerCertificateValidationCallback delegate. C# version of the client is added below for reference.</font></strong></p>  <p></p>  <h4>Imports System.Security.Cryptography.X509Certificates </h4>  <h4>Module Module1 </h4>  <h4>&#160;&#160;&#160; Sub Main()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong><font color="#0080ff">System.Net.ServicePointManager.ServerCertificateValidationCallback = DirectCast([Delegate].Combine(System.Net.ServicePointManager.ServerCertificateValidationCallback, New System.Net.Security.RemoteCertificateValidationCallback(AddressOf RemoteCertValidate)), System.Net.Security.RemoteCertificateValidationCallback)</font></strong></h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dim client As New ServiceReference1.ServiceClient()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(client.GetData(10))</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; client.Close()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.ReadLine()</h4>  <h4>&#160;&#160;&#160; End Sub</h4>  <h4>&#160;&#160;&#160; <font color="#0080ff">Function RemoteCertValidate(ByVal sender As Object, ByVal cert As X509Certificate, ByVal chain As X509Chain, ByVal error1 As System.Net.Security.SslPolicyErrors) As Boolean</font></h4>  <h4><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; Return True</font></h4>  <h4><font color="#0080ff">&#160;&#160;&#160; End Function</font></h4>  <h4>End Module</h4>  <p>Filename: Client.cs</p>  <h4>using System;</h4>  <h4>using System.Collections.Generic;</h4>  <h4>using System.Linq;</h4>  <h4>using System.Text;</h4>  <h4>using System.Security.Cryptography.X509Certificates; </h4>  <h4>namespace WCFClientCS</h4>  <h4>{</h4>  <h4>&#160;&#160;&#160; class Program</h4>  <h4>&#160;&#160;&#160; {</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; static void Main(string[] args)</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; callWsHttp();</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.ReadLine();</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; static void callWsHttp()</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0080ff"> System.Net.ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);</font></h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ServiceReference1.ServiceClient svc1 = new ServiceReference1.ServiceClient(&quot;wsHttpBinding&quot;);</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Console.WriteLine(svc1.GetData(10));</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; svc1.Close();</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</h4>  <h4>&#160;<font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160; static bool RemoteCertValidate(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)</font></h4>  <h4><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</font></h4>  <h4><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return true;</font></h4>  <h4><font color="#0080ff">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></h4>  <h4>&#160;&#160;&#160; }</h4>  <h4>}</h4>  <p>&#160;</p>  <p>Filename: app.config</p>  <p>&lt;!—The following system.serviceModel Section can be replaced in the client’s app.config file --&gt;</p>  <h4>&lt;system.serviceModel&gt;</h4>  <h4>&#160;&#160;&#160; &lt;bindings&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;wsHttpBinding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;binding name=&quot;WSHttpBinding_IService&quot; closeTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; openTimeout=&quot;00:01:00&quot; receiveTimeout=&quot;00:10:00&quot; sendTimeout=&quot;00:01:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bypassProxyOnLocal=&quot;false&quot; transactionFlow=&quot;false&quot; hostNameComparisonMode=&quot;StrongWildcard&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBufferPoolSize=&quot;524288&quot; maxReceivedMessageSize=&quot;65536&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; messageEncoding=&quot;Text&quot; textEncoding=&quot;utf-8&quot; useDefaultWebProxy=&quot;true&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; allowCookies=&quot;false&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;readerQuotas maxDepth=&quot;32&quot; maxStringContentLength=&quot;8192&quot; maxArrayLength=&quot;16384&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; maxBytesPerRead=&quot;4096&quot; maxNameTableCharCount=&quot;16384&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;reliableSession ordered=&quot;true&quot; inactivityTimeout=&quot;00:10:00&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; enabled=&quot;false&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;security mode=&quot;Transport&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;transport clientCredentialType=&quot;Windows&quot; proxyCredentialType=&quot;None&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; realm=&quot;&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;message clientCredentialType=&quot;Windows&quot; negotiateServiceCredential=&quot;true&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; establishSecurityContext=&quot;true&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/security&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/binding&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/wsHttpBinding&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/bindings&gt;</h4>  <h4>&#160;&#160;&#160; &lt;client&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;endpoint address=<a href="https://myIISServer.myDomain.com/NTLMWCFService/Service.svc">https://myIISServer.myDomain.com/NTLMWCFService/Service.svc</a></h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_IService&quot;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; contract=&quot;ServiceReference1.IService&quot; name=&quot;WSHttpBinding_IService&quot;&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;servicePrincipalName value=&quot;host/myClient.myDomain.com&quot; /&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/identity&gt;</h4>  <h4>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/endpoint&gt;</h4>  <h4>&#160;&#160;&#160; &lt;/client&gt;</h4>  <h4>&lt;/system.serviceModel&gt;</h4>]]></content:encoded>
    </item>
    <item>
      <title>SSL Redirection using ASP.NET</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/ssl-redirection-using-asp-net</link>
      <pubDate>Thu, 14 May 2009 21:52:00 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2009/05/14/ssl-redirection-using-asp-net/</guid>
      <description><![CDATA[You require ASP.Net configured on IIS to use this solution.
&nbsp;
Here is how you can implement...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>You require ASP.Net configured on IIS to use this solution.</FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri></FONT></FONT></SPAN>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>Here is how you can implement this solution.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="COLOR: #17365d"><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>1)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>Create a new Virtual Directory “SSLRedirect” and point this to a new physical folder which is independent of your Website Content<o:p></o:p></FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>2)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>Created 2 Files in this. 1. Global.asax and 2. Default.aspx<o:p></o:p></FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>3)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>Here is the sample code for the Global.asax. Default.aspx can be empty.<o:p></o:p></FONT></FONT></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow">&lt;%</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">@</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"> <SPAN style="COLOR: #a31515">Application</SPAN> <SPAN style="COLOR: red">Language</SPAN><SPAN style="COLOR: blue">="VB"</SPAN> <SPAN style="BACKGROUND: yellow; mso-highlight: yellow">%&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 10pt; mso-highlight: yellow"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">script</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"> <SPAN style="COLOR: red">runat</SPAN><SPAN style="COLOR: blue">="server"&gt;<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">Protected</SPAN> <SPAN style="COLOR: blue">Sub</SPAN> Application_BeginRequest(<SPAN style="COLOR: blue">ByVal</SPAN> sender <SPAN style="COLOR: blue">As</SPAN> <SPAN style="COLOR: blue">Object</SPAN>, <SPAN style="COLOR: blue">ByVal</SPAN> e <SPAN style="COLOR: blue">As</SPAN> System.EventArgs)<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">Try<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Redirect(Replace(Replace(Request.Url.ToString.Split(<SPAN style="COLOR: #a31515">";"</SPAN>)(1), <SPAN style="COLOR: #a31515">"http:"</SPAN>, <SPAN style="COLOR: #a31515">"https:"</SPAN>), <SPAN style="COLOR: #a31515">":80"</SPAN>, <SPAN style="COLOR: #a31515">""</SPAN>))<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">Catch</SPAN> ex <SPAN style="COLOR: blue">As</SPAN> Exception<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Diagnostics.EventLog.WriteEntry(<SPAN style="COLOR: #a31515">"SSLRedirect"</SPAN>, ex.Message() &amp; _<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbCrLf &amp; Request.UserAgent &amp; _<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbCrLf &amp; Request.UserHostAddress &amp; _<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vbCrLf &amp; Request.UserHostAddress)<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(<SPAN style="COLOR: #a31515">"&lt;a href=""/""&gt;Goto HomePage&lt;/a&gt;"</SPAN>)<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">End</SPAN> <SPAN style="COLOR: blue">Try<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp; <SPAN style="COLOR: blue">End</SPAN> <SPAN style="COLOR: blue">Sub<o:p></o:p></SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp; <o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">script</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&gt;</SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">Note: The exception handling is done to check if the client is directly trying to access the SSLRedirect application and provide the administrators with the client IP who is trying this and then provide with a link for the home page.</SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"></SPAN>&nbsp;</P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>4)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>Now you can goto the properties of the virtual directories or even website that requires to be viewed strictly over&nbsp;SSL and click on Custom Errors and point the 403;4 &nbsp;to the TYPE URL and Contents to /SSLRedirect/Default.aspx.</FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d"><FONT size=3><FONT face=Calibri>5)&nbsp;&nbsp; Before you browse the website/virtual directory Make sure the SSLRedirect virtual directory does not have SSL set to required and authentication is set to Anonymous only.</FONT></FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d"><FONT size=3 face=Calibri>6)&nbsp;&nbsp; Also if you have a web.config not configured for Anonymous access at a parent level to SSLRedirect folder, you will need to have a Web.Config inside the SSLRedirect folder which allows anonymous access.</FONT></SPAN></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="COLOR: #17365d"><FONT size=3 face=Calibri>7)&nbsp;&nbsp; The application configured for the SSL redirection using this method and the SSLRedirect virtual directory&nbsp;both should run under the same application pool.</FONT></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>Get and Set FTP Active Directory Isolation Properties in IIS7 using iisftp.vbs script from IIS6.0</title>
      <link>https://docs.microsoft.com/archive/blogs/santhoshonline/get-and-set-ftp-active-directory-isolation-properties-in-iis7-using-iisftp-vbs-script-from-iis6-0</link>
      <pubDate>Tue, 31 Mar 2009 00:58:06 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/santhoshonline/2009/03/31/get-and-set-ftp-active-directory-isolation-properties-in-iis7-using-iisftp-vbs-script-from-iis6-0/</guid>
      <description><![CDATA[Users who are very used to the iisftp.vbs script in previous version IIS 6.0 can still use it on...]]></description>
      <content:encoded><![CDATA[<p>Users who are very used to the iisftp.vbs script in previous version IIS 6.0 can still use it on Windows Server 2008. After all its only a script to Get or Set the FTP AD properties for a given user. The only requirement was it uses the Microsoft.CmdLib component.</p>  <p>When you run iisftp.vbs /? if you get the error as below, you can copy the iisftp.vbs and CmdLib.msc from a Windows Server 2003 machine %windir%\system32\dllcache folder on to your windows 2008 server and register the cmdlib.msc.</p>  <p>Could not create an instance of the CmdLib object.   <br />Please register the Microsoft.CmdLib component.</p>  <p>regsvr32 cmdlib.msc</p>  <p>You can start using the iisftp.vbs after this as you were used to on IIS6.0</p>]]></content:encoded>
    </item>
  </channel>
</rss>