<?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>Mert's debug and development shop</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/mert/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/mert/feed.xml</link>
    <description>Hi,i am working as a Support Escalation Engineer in Microsoft, and i will be sharing, snapshots from my learning experience in this blog.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:23:18 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Passive FTP Service on action</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/passive-ftp-service-on-action</link>
      <pubDate>Thu, 06 Oct 2016 18:43:29 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/?p=75</guid>
      <description><![CDATA[Hi everyone,

Nowadays i have came across some number of questions, which one is better for FTP...]]></description>
      <content:encoded><![CDATA[Hi everyone,

Nowadays i have came across some number of questions, which one is better for FTP mode: Active or Passive mode?

We mostly recommend using passive mode, if you face your server to internet. This is also mentioned on <a href="https://www.iis.net/learn/publish/using-the-ftp-service/configuring-ftp-firewall-settings-in-iis-7">IIS.Net article</a>, that active mode is no more recommended, and passive connections work much better in Internet scenarios and recommended by <a href="https://www.ietf.org/rfc/rfc1579.txt">RFC 1579 (Firewall-Friendly FTP)</a>.

FTP Service, when a passive connection established, makes the data connection (we have one control, and one data connection) based on the "<a href="https://www.iis.net/configreference/system.ftpserver/firewallsupport">FTP Firewall Support</a>" settings that are configured from server level. Just to give some idea, about how it works, i made some demonstration below. For example, first, i configure "FTP Firewall support" like below on my server:

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2016/10/blogFTP.png"><img width="300" height="171" class="alignnone size-medium wp-image-85" alt="blogFTP" src="https://msdnshared.blob.core.windows.net/media/2016/10/blogFTP-300x171.png" /></a>

After that, when i start "ftpsvc" (cmd: net start ftpsvc), i can see that it start to listen from control port:

c:\&gt;netstat -ano | findstr ":21 "
TCP    0.0.0.0:21             0.0.0.0:0              LISTENING       2656 ( pid of FTPSVC process)
TCP    [::]:21                [::]:0                 LISTENING       2656

When i start to make ftp requests to the server, it obeys the port range that i have set on "FTP Firewall Support" settings.

c:\ &gt;netstat -ano | findstr "2656" (2656 process ID - FTPSVC)
TCP    0.0.0.0:21             0.0.0.0:0              LISTENING       2656
TCP    [::]:21                [::]:0                 LISTENING       2656
TCP    [::1]:21               [::1]:1482             ESTABLISHED     2656 Control port between FTP client and FTPSVC. (first file)
TCP    [::1]:21               [::1]:1483             ESTABLISHED     2656 Control port between FTP client and FTPSVC. (second file)
TCP    [::1]:2501             [::1]:1485             ESTABLISHED     2656 Data port between FTP client and FTPSVC. (first file)
TCP    [::1]:2505             [::1]:1490             ESTABLISHED     2656 Data port between FTP client and FTPSVC. (second file)

&nbsp;

You can easily see above that, data connection are selected from port numbers, which we have limited on Firewall Support settings. So you can configure your firewall with this range you have defined.

Also, i want to note that, "FTP Current Sessions" view on "IIS Manager" is very usefull to see, what is happenning at that moment. Here it goes, when i was checking the ports:

<a href="https://msdnshared.blob.core.windows.net/media/2016/10/blogFTP2.jpg"><img width="853" height="149" class="alignnone wp-image-105 size-full" alt="blogFTP2" src="https://msdnshared.blob.core.windows.net/media/2016/10/blogFTP2.jpg" /></a>

&nbsp;

I hope you found this blog usefull,

Have a great day,

Mert]]></content:encoded>
    </item>
    <item>
      <title>SignalR Performance and Scaleout configuration.</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/signalr-performance-and-scaleout-configuration</link>
      <pubDate>Fri, 01 Apr 2016 13:32:47 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/?p=43</guid>
      <description><![CDATA[Hi again,

In this blogpost, I want to share with you, what you can do on a distributed SignalR...]]></description>
      <content:encoded><![CDATA[Hi again,

In this blogpost, I want to share with you, what you can do on a distributed SignalR environment, to improve performance.

After working on a number of SignalR related performance issues, i saw that scale-out configuration was helping to resolve connectivity problems. When you have increased contention on backplane (ie. Locks on backplane database) it can result delay on message transmission, and even can cause connection failures on client side.

Backplane implementation is mostly recommended on “<a href="https://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr">Server Broadcast</a>” type of applications. Not limited to these, other type of implementation are; “<a href="https://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr">Client-to-Client”</a> type or <a href="https://www.asp.net/signalr/overview/getting-started/tutorial-high-frequency-realtime-with-signalr">“High-Frequency Realtime</a>” applications. One thing we usually try for performance considerations is; to change scale-out configuration for the backplane. The intentions for making this configuration is to increase the count of streams to backplane. For SQL backplane configuration, it means increasing the tableCount and for ServiceBus backplane it’s the TopicCount. For “Redis backplanes”, indeed we don’t have an option to increase stream count, but for all the type of backplane configurations “QueueLenght” parameter effectively (Queue infront-of backplane) helps improving performance. For an issue I have worked before, increasing “QueueLenght” on RedisBackplane has resolved connectivity issues, especially for ‘LongPolling’. I can say that, "scale-out configuration" is important since the clients progress on reading messages through the bus with a cursor value, and it effects end-to-end real-time behaviour. Here is a typical “SqlScaleoutConfiguration” that increases the table/stream count from “1” (Default) to “3” from this <a title="SQlScaleOut Configuration" href="https://www.asp.net/signalr/overview/performance/signalr-performance" target="_blank">article</a>:

var connectionString = "(your connection string)";
var config = new SqlScaleoutConfiguration(connectionString) {
TableCount = 3,
MaxQueueLength = 50 };
GlobalHost.DependencyResolver.UseSqlServer(config);

After this configuration is activated, you can check database and you will see the parallelity, in action:

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/ScaleOutSQL.png"><img class="alignnone wp-image-53" src="https://msdnshared.blob.core.windows.net/media/2016/04/ScaleOutSQL-1024x167.png" alt="" width="800" height="130" /></a>

See supplementary articles below for backplane configuration and scaling out:

Code implementations from ‘master’ branch:

<a href="https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.Redis/RedisScaleoutConfiguration.cs">https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.Redis/RedisScaleoutConfiguration.cs</a>

<a href="https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.ServiceBus/ServiceBusScaleoutConfiguration.cs">https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.ServiceBus/ServiceBusScaleoutConfiguration.cs</a>

<a href="https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.SqlServer/SqlScaleoutConfiguration.cs">https://github.com/billboga/SignalR-1/blob/master/src/Microsoft.AspNet.SignalR.SqlServer/SqlScaleoutConfiguration.cs</a>

Classes from msdn:

<a href="https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.servicebusscaleoutconfiguration(v=vs.118).aspx">https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.servicebusscaleoutconfiguration(v=vs.118).aspx</a>

<a href="https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.redisscaleoutconfiguration(v=vs.118).aspx">https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.redisscaleoutconfiguration(v=vs.118).aspx</a>

<a href="https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.sqlscaleoutconfiguration(v=vs.118).aspx">https://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.sqlscaleoutconfiguration(v=vs.118).aspx</a>

Articles on scaleout configuration:

<a href="https://www.asp.net/signalr/overview/performance/signalr-performance#tuning">https://www.asp.net/signalr/overview/performance/signalr-performance#tuning</a>

From Article:  “<em>A</em><em> <strong>Stream</strong> </em><em>in this context is a scale unit used by the scaleout provider; this is a table if SQL Server is used, a Topic if Service Bus is used, ..”</em>

<a href="https://www.asp.net/signalr/overview/performance/scaleout-in-signalr">https://www.asp.net/signalr/overview/performance/scaleout-in-signalr</a>

<em>From Article: “Each server instance connects to the backplane through the bus. When a message is sent, it goes to the backplane, and the backplane sends it to every server. When a server gets a message from the backplane, it puts the message in its local cache. The server then delivers messages to clients from its local cache.. client’s progress in reading the message stream is tracked using a cursor.”</em>

&nbsp;

Finally, to see if you require parallelity on backplane, you can configure SignalR Performance counters. You can check my <a title="SignalR Performance Counters" href="https://blogs.msdn.microsoft.com/mert/2016/04/01/signalr-troubleshooting-performance-counters-and-tracing/">blog on that</a>.

Hope it was helpfull,

Mert

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>SignalR troubleshooting : “Performance Counters” and “Tracing”</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/signalr-troubleshooting-performance-counters-and-tracing</link>
      <pubDate>Fri, 01 Apr 2016 13:31:13 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/?p=33</guid>
      <description><![CDATA[Hello,

In this blogpost, I wanted to share with you some of the troubleshooting methods available...]]></description>
      <content:encoded><![CDATA[Hello,

In this blogpost, I wanted to share with you some of the troubleshooting methods available on “SignalR”. Especally, SignalR tracing helps a lot to diagnose end-to-end connectivity issues. For assessment of performance, “SignalR Performance Counters” can be collected. See below, how these can be activated.

<em><span style="text-decoration: underline">Enabling SignalR Tracing: </span></em>

You can configure server (if possible also client side) side <a title="signalR tracing" href="https://www.asp.net/signalr/overview/testing-and-debugging/enabling-signalr-tracing" target="_blank">SignalR tracing </a>to see, if you have connectivity issues, or performance problems. Tracing on the server , logs: connection, scaleout provider, and message bus events. Tracing on the client logs: connection events. In SignalR 2.1 and later, tracing on the client logs the full content of hub invocation messages. To give an example, here is a typical “transport” error written to 'transport.log' , which is indeed a failure on 'LongPolling' transport:

&nbsp;

SignalR.Transports.LongPollingTransport Warning: 0 : Exception thrown by Task: System.AggregateException: One or more errors occurred. ---&gt; System.Web.HttpException: The remote host closed the connection. The error code is 0x800704CD.
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
at System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async)
at System.Web.HttpWriter.WriteFromStream(Byte[] data, Int32 offset, Int32 size)
at Microsoft.Owin.Host.SystemWeb.CallStreams.OutputStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at Microsoft.AspNet.SignalR.Owin.ServerResponse.Write(ArraySegment`1 data)
at Microsoft.AspNet.SignalR.Infrastructure.BinaryTextWriter.b__4(ArraySegment`1 data, Object state)
at Microsoft.AspNet.SignalR.Infrastructure.BufferTextWriter.ChunkedWriter.Flush(Byte[] byteBuffer, Boolean flushEncoder)
at Microsoft.AspNet.SignalR.Infrastructure.BufferTextWriter.Flush()
at Microsoft.AspNet.SignalR.Transports.LongPollingTransport.PerformKeepAlive(Object state)
at Microsoft.AspNet.SignalR.Infrastructure.TaskQueue.InvokeNext(Func`2 next, Object nextState)
at Microsoft.AspNet.SignalR.TaskAsyncHelper.FromMethod[T1,T2,T3](Func`4 func, T1 arg1, T2 arg2, T3 arg

&nbsp;

<em><span style="text-decoration: underline">Enabling SignalR Performance counters: </span></em>

Counters can be enabled with 'SignalR.exe' utility found in the Microsoft.AspNet.SignalR.Utils package. You can get it with Nuget and install counters, in your project like described in this <a title="SignalR performance counters" href="https://www.asp.net/signalr/overview/performance/signalr-performance#perfcounters" target="_blank">article</a>. After enabling the counters, ou can define a <a title="Defining a data collector set" href="https://technet.microsoft.com/en-us/library/cc722414.aspx" target="_blank">data collector set</a>, as usual:

After getting the package, they are activated with following command --&gt;
<em>c:\SRTest\packages\Microsoft.AspNet.SignalR.Utils.2.2.0\tools&gt;signalr.exe ipc</em>
<em> SignalR Utility Version: 2.2.0.0</em>
<em> Installing performance counters...</em>
<em> Connections Connected</em>
<em> Connections Reconnected</em>
<em> Connections Disconnected</em>
<em> Connections Current ForeverFrame</em>
<em> Connections Current LongPolling</em>
<em> Connections Current ServerSentEvents</em>
<em> Connections Current WebSockets</em>
<em> Connections Current</em>
<em> Connection Messages Received Total</em>
<em> Connection Messages Sent Total</em>
<em> Connection Messages Received/Sec</em>
<em> Connection Messages Sent/Sec</em>
<em> Message Bus Messages Received Total</em>
<em> Message Bus Messages Received/Sec</em>
<em> Scaleout Message Bus Messages Received/Sec</em>
<em> Message Bus Messages Published Total</em>
<em> Message Bus Messages Published/Sec</em>
<em> Message Bus Subscribers Current</em>
<em> Message Bus Subscribers Total</em>
<em> Message Bus Subscribers/Sec</em>
<em> Message Bus Allocated Workers</em>
<em> Message Bus Busy Workers</em>
<em> Message Bus Topics Current</em>
<em> Errors: All Total</em>
<em> Errors: All/Sec</em>
<em> Errors: Hub Resolution Total</em>
<em> Errors: Hub Resolution/Sec</em>
<em> Errors: Hub Invocation Total</em>
<em> Errors: Hub Invocation/Sec</em>
<em> Errors: Tranport Total</em>
<em> Errors: Transport/Sec</em>
<em> Scaleout Streams Total</em>
<em> Scaleout Streams Open</em>
<em> Scaleout Streams Buffering</em>
<em> Scaleout Errors Total</em>
<em> Scaleout Errors/Sec</em>
<em> Scaleout Send Queue Length</em>

<em>Performance counters installed!</em>
<em>  </em>

Thanks,

Mert

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>A bit of clarity for IIS request queueing</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/a-bit-of-clarity-for-iis-request-queueing</link>
      <pubDate>Thu, 21 Jan 2016 03:42:00 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/2016/01/21/a-bit-of-clarity-for-iis-request-queueing/</guid>
      <description><![CDATA[Hi again,
After IIS7 and later IIS versions, there has been some changes on the way the requests...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">Hi again,</span></p>
<p><span style="font-size: small;">After IIS7 and later IIS versions, there has been some changes on the way the requests are queued, especially when you use Integrated pipeline. This <a title="Thread usage on IIS 6 and 7 versions" href="https://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx">blog</a> is a very good resource to understand these changes.</span></p>
<p><span style="font-size: small;">Even this is not a new thing, there&nbsp;may still be confusions around using performance counter values, especially, when performing load tests, to see if there are queued requests, after a certain load.</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">I have created a test scenario,&nbsp;to concretize these differences, and to show you how you can evaluate the change on that pipline mode. See the steps and conclusion below.&nbsp;</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"><span style="text-decoration: underline;"><strong>Step-1</strong></span>: I have setup an application </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">pool using Framework V4 and created a test ASP.NET script to work under that </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">application pool.</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/0574.Blog.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/0574.Blog.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/0574.Blog.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/0574.Blog.jpg" alt="" border="0" /></a></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">Test script looks like </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">below, and it blocks a worker thread for 40 seconds.. Just to keep the CLR worker threads </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">busy. I took it as an application, under the application pool i have created on earlier step.</span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>40SecRequest</em>.aspx:</span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>&lt;%@ Page %&gt;<br />&lt;script language="C#" runat="server"&gt;<br />private void Page_Load(object sender, System.EventArgs e)<br />{&nbsp;&nbsp; System.Threading.Thread<span style="background-color: #ffff99;">.Sleep(40000);</span>&nbsp;&nbsp;&nbsp; }<br />&lt;/script&gt;</em></span>&nbsp;</p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"><span style="text-decoration: underline;"><strong>Step-2:</strong></span>&nbsp; After that, I have decreased the "MaxWorker" threads to only "2" (4 procs machine), to force the queueing up of the requests easily:</span></p>
<p>&nbsp;<span style="font-family: courier new,courier; font-size: small;">C:\Windows\Microsoft.NET\<span style="background-color: #ffff99;">Framework64\v4.0.30319\</span>Config\machine.config (framework folder is defined with application pool settings.)</span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>..</em></span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>&lt;system.web&gt;</em></span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>&lt;processModel autoConfig="false"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />maxWorkerThreads = "2"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />maxIoThreads = "2"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />minWorkerThreads = "1"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />minIoThreads = "1"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/&gt;</em></span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>&lt;httpRuntime&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>minFreeThreads="1"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />minLocalRequestFreeThreads="1"&nbsp;</em></span><span style="font-family: courier new,courier; font-size: small;"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/&gt;</em></span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>..</em></span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">And also I have changed the "</span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">maxConcurrentRequestsPerCPU" setting to "3", for "integrated pipeline" to decrease the </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">maximum number of requests to be executed to "3*numberofCPUCores" :</span></p>
<p><span style="font-family: courier new,courier; font-size: small;">C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config</span></p>
<p><span style="font-family: courier new,courier; font-size: small;"><em>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;<br />&lt;configuration&gt;<br />&lt;system.web&gt;<br />&lt;applicationPool <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #ffff99;">&nbsp; maxConcurrentRequestsPerCPU="3"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxConcurrentThreadsPerCPU="1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requestQueueLimit="5000"<br />/&gt;<br />..<br /></em></span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small; text-decoration: underline;"><strong>Step-3 :</strong> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">After that I have used that </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"><a title="tinyget.exe" href="https://www.microsoft.com/en-us/download/details.aspx?id=17275">tinyget</a> to pump some requests to the application pool with following command: </span>&nbsp;</p>
<p>&nbsp;<span style="font-family: courier new,courier; font-size: small;"><em>c:\Utils&gt;tinyget.exe -srv:localhost -uri:/ProcessModelChanged/40SecRequest.aspx -threads:40 -loop:1</em></span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"><span style="text-decoration: underline;"><strong>Observation</strong> </span>:&nbsp; </span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">On Integrated pipeline:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<ul>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">We have "8" requests executing, which is calculated like "numberOfCpuCores&nbsp;* MaxWorkerThreads"&nbsp; = 8 (4 * 2) , on parallel.</span></li>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">For &ldquo;ASP.Net Applications&rdquo; and &ldquo;ASP.NET apps&rdquo; counters &ldquo;Requests in the application queue" is zero. Because, In integrated pipeline we don&rsquo;t have application level queues. That is why these counters are zero.</span></li>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">For &ldquo;ASP.Net&rdquo; category &ldquo;Request queued&rdquo; is displaying the number of queued requests.</span></li>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/0513.Blog.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/0513.Blog.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/0513.Blog.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/0513.Blog.jpg" alt="" border="0" /></a></p>
<p>&nbsp;<span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">If I convert the application pool pipeline mode to "Classic </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">pipeline" mode;</span></p>
<ul>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">We have now, "7" </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">requests executing on parallel, which is calculated with "(numberOfCpuCores&nbsp;* MaxWorkerThreads )-&nbsp; </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">minFreeThreads" formulla&nbsp;per <a title="Classic mode CLR threadpool usage" href="https://support.microsoft.com/en-us/kb/821268">this article</a>. </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">This </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">calculation makes "7" (4*2-1) parallel requests getting executed.</span></li>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">For &ldquo;ASP.Net </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">Applications&rdquo; and &ldquo;ASP.NET apps&rdquo; counters &ldquo;Requests in the application queue is </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">now functional , because we have application level queues.</span></li>
<li><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">Also For &ldquo;ASP.Net&rdquo; </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;">category &ldquo;Request queued&rdquo; is displaying the number of queued requests again.</span></li>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/6765.Blog.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/6765.Blog.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/6765.Blog.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/6765.Blog.jpg" alt="" border="0" /></a></p>
<p>&nbsp;I hope this was useful for you,</p>
<p>Thanks,</p>
<p>Mert</p>]]></content:encoded>
    </item>
    <item>
      <title>ASPNET RC1 has launched</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/aspnet-rc1-has-launched</link>
      <pubDate>Mon, 23 Nov 2015 02:53:00 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/2015/11/23/aspnet-rc1-has-launched/</guid>
      <description><![CDATA[Hi,
We are close to the end of November, and you may hear the footsteps of winter coming, for the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Hi,</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">We are close to the end of November, and you may hear the footsteps of winter coming, for the north!</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">For the ones, who are following ASP NET 5, it is now open source, cross-platform and portable, more charismatic then ever. Its exciting to see that it is reshaping itself for the Cloud world. We are now, close to the first release such that this month first release candidate (RC1) is unleashed. You can take a look to the <a title="asp.net 5 roadmap" href="https://github.com/aspnet/Home/wiki/Roadmap">road map</a> from github.&nbsp;</span>&nbsp;</p>
<table>
<thead>
<tr><th>Milestone</th><th>Release week</th></tr>
</thead>
<tbody>
<tr>
<td>Beta6</td>
<td>27 Jul 2015</td>
</tr>
<tr>
<td>Beta7</td>
<td>2 Sep 2015</td>
</tr>
<tr>
<td>Beta8</td>
<td>15 Oct 2015</td>
</tr>
<tr>
<td>RC1</td>
<td>Nov 2015</td>
</tr>
<tr>
<td>1.0.0</td>
<td><span title="Calendar based">Q1<span>*</span></span>&nbsp;2016</td>
</tr>
</tbody>
</table>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Basically there are 3 main components for ASP.Net 5:&nbsp;</span></p>
<ul>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">DNVM(.Net Version Manager) which lets you to select the version from a list of ASP.Net versions.</span></li>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">DNX(.Net Execution environment) which is the SDK and run-time environment that has everything to build and run .Net applications, for Windows,Mac and Linux.</span></li>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">DNU(.Net development utilities) which is fundamental for developing ASP.Net applications.&nbsp;</span></li>
</ul>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">With these components, you can develop and build Asp.Net applications which can run on different platforms. Setting up that environment is quite easy and you can follow the guidelines on asp.net website. On an untested version of linux, you may go into some issues, due to prerequisites of DNX especially.</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">In this blog, i want to make a quick overview of setting up an environment on latest version of <a title="Ubuntu 15.10 download" href="https://releases.ubuntu.com/15.10/">Ubuntu - 15.10 (Wily Werewolf)</a> on Hyper-v, and want to tell you the difficulties i had, and you can also have.I also set up<a title="Visual Studio Code" href="https://code.visualstudio.com/"> "Visual Studio Code" </a>for an IDE and "<a title="yeoman link" href="https://yeoman.io/">Yeoman</a>" for a code scaffolding tool.&nbsp;</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">The officially supported Ubuntu version for "beta-8" version was "<a title="Ubuntu 14.04" href="https://releases.ubuntu.com/14.04/">Ubuntu 14.04</a>". Because of this, i got some issues on installation of environment and utilities. One was because of a DNX prerequisite, in particular "libicu", and the other was when setting up "Yeoman". Luckily, there is everything you need on internet to workaround these problems. For a Windows guy like me, that was all i need. Here is a summary of the challenges i had, if you also plan to install DNX on "Ubuntu 15.10":</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">#1 - First of all, i recommend you to first update the package index before applying the instructions on asp.net site for DNVM and DNX - Coreclr installations. Below command updates the local package index with the latest changed made in the repositories:&nbsp;</span></p>
<p><span style="font-family: 'courier new', courier; font-size: small;">sudo apt-get update</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">#2 - After you install the "coreclr" with "DNVM", "dnx" and "dnu" commands was not producing any output. With the following trace output (<a title="aspnet envioronment variables" href="https://github.com/aspnet/Home/wiki/Environment-Variables">DNX_TRACE </a>is an environment varible), i discovered that i had the same issue on this <a title="github issues 3059" href="https://github.com/aspnet/dnx/issues/3059>">github article</a>.&nbsp;</span></p>
<p><span style="font-family: 'courier new', courier; font-size: small;">DNX_TRACE=1 dnx --version</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">It is an issue with the "libicu" module (a prerequisite for DNX) since "Ubuntu 15.10" uses "libicu55" but "Ubuntu 14.04" was using "libicu52". Installing "libicu52" is finxing the issue on "Ubuntu 15.10".</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">#3 - You may get a warning on Yeoman installation like "node:not found". It is an issue about remaing of Node.js, for a naming collision with another package. As far as i can see, it can be recovered by following command:&nbsp;</span></p>
<p><span style="font-family: 'courier new', courier; font-size: small;">sudo apt-get install nodejs-legacy</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">After that you can install "yo" with following command.</span></p>
<p><span style="font-family: 'courier new', courier; font-size: small;">sudo npm install -g yo generator-aspnet</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Finally i have managed to run my first asp.net application on "Ubuntu 15.10" :</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/5531.Ubuntu.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/5531.Ubuntu.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/68/52/5531.Ubuntu.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-68-52/5531.Ubuntu.png" alt="" border="0" /></a></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Finally i want to give some more small notes about commands for DNVM:</span></p>
<ul>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">"-u" switch let you to install the most recent version:<span style="font-family: 'courier new', courier;">&nbsp;"<span lang="en-US">dnvm</span><span lang="en-US">&nbsp;</span><span lang="tr">install -r&nbsp;</span><span lang="tr">coreclr</span><span lang="tr">&nbsp;latest -u"</span></span></span></li>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">You may also want to<a title="Clone the samples from " href="https://github.com/aspnet/home"> work with the samples</a> from asp.net site via cloning them on linux.</span></li>
<li><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">A link of "Visual Studio code" should be added<a title="visual  studio code setup" href="https://code.visualstudio.com/Docs/editor/setup"> like this</a>, to launch it from Terminal easily: &nbsp;<span style="font-family: 'courier new', courier;">"sudo ln -s /path/to/vscode/Code /usr/local/bin/code"</span></span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">These are the major things i recall.</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Happy coding!</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: small;">Mert</span></p>]]></content:encoded>
    </item>
    <item>
      <title>I am back after a break!</title>
      <link>https://docs.microsoft.com/archive/blogs/mert/i-am-back-after-a-break</link>
      <pubDate>Sun, 22 Nov 2015 06:37:00 GMT</pubDate>
      <dc:creator><![CDATA[MertÖztürk]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/mert/2015/11/22/i-am-back-after-a-break/</guid>
      <description><![CDATA[Hi,
I am working as a Support Escalation Engineer in Microsoft, supporting "EMEA premier...]]></description>
      <content:encoded><![CDATA[<p>Hi,</p>
<p>I am working as a Support Escalation Engineer in Microsoft, supporting "EMEA premier customers", especially for web based technologies. Previously, I was contributing to a "Turkish blog" named&nbsp;<a href="https://blogs.msdn.com/b/devtr/">"devtr"&nbsp;</a>with one of my colleagues, and now i will also create blog posts mainly in "English" for my own blogging site here.&nbsp;</p>
<p>There are many reasons to be excited about how the things changing to adapt to "Cloud" and "Mobile" world nowadays, and i want to share my experiences from here on my daily support business as much as i can. I hope you find it useful!</p>
<p>&nbsp;</p>
<p>Mert&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>