Monday, March 16, 2015

Stored Procedure in batch running slow? Stored Procedure fast in SSMS?

ArithAbort is your man!

If ARITHABORT is not set to on, we sometimes get performance problems with connections from the website (because UDL connections (really OLEDB) have ARITHABORT set to off).   When this setting is off, I suspect that the optimizer decides to do serial scans in the selects of the nested functions instead of indexed (or more optimal) reads.
We are OK with ARITHABORT set to on because the math involved should NOT cause an arithmetic exception.  And, even if it did, we want to fix it.

BTW the default for ARITHABORT in SSMS is on.  That is why these queries are always faster when trying execute them in a query window.

To see more, http://sqladvice.com/blogs/gstark/archive/2008/02/12/Arithabort-Option-Effects-Stored-Procedure-Performance.aspx

Monday, March 2, 2015

Win8 Finding the user (or windows feature) IIS AppPool

When adding the user type in the whole name
IIS AppPool\DefaultAppPool

Thursday, March 27, 2014

Fiddler and Asp.Net

Ran across this today, just a handy item to know.  I use Fiddler a lot of debugging web programming.  Today I needed to use to to debug some Web.Request conversation.  For the most part I write everything out to log files and it contains what I need.  But, I was dealing with a tech support organization who really wanted Fiddler output.


http://weblog.west-wind.com/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF-Proxies

So, even though I have libraries to man-handle the Web.Requests the following entry in the web.config file allowed Fiddler to see the conversation.  No code change!

  <system.net>
    <defaultProxy>
      <proxy
              usesystemdefault="False"
              bypassonlocal="True" 
              proxyaddress="http://127.0.0.1:8888"              
              />
    </defaultProxy>
  </system.net>
 
If you forget and don't have Fiddler running, you can get the following error
System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:8888
 
 


Thursday, March 13, 2014

Handy App Pool info - 32bit vs 64 bit

We process a lot of huge document so to be able to run in 64 bit mode and use more than 4GB of memory is kind of important.

Trying to figure out which app pools are actually running in 32-bit mode

appcmd list wp

Then go into Task Manager, show processes for all users. If the PID doesn't show up then View | Select Columns | check PID

The processes that have a *32 next to the name are the ones running in 32 bit mode.

So, w3wp.exe *32 is running in 32 bit mode

How to solve that...

Go into the IIS Manager, find the Application Pools, right click | advanced settings | Enable 32-bit application = False.

You must compile your application in 64 bit mode or AnyCPU.  Here is a really good explanation for
moving-asp-net-web-application-from-32-bit-to-64-bit

Wednesday, February 26, 2014

MSChart cheat sheet

Microsoft bought Dundas charts.  Sometimes it helps to google that tool as well.  Better documented.
Dundas Documentation



Line graphs are not fond of nulls, seems to mess up results

Formatting
chart.Series[name].Label = "#VALY{C0}";  //will give you the value of Y formatting with currency

chart.ChartAreas[0].AxisY.LabelStyle.Format = "{C0}";  //format the labels of the Y axis with currency

Tuesday, February 11, 2014

abcPDF

Here is an interesting problem when using abcPDF Gecko engine.

Error creating initial PDF: WebSupergoo.ABCpdf9.Internal.PDFException: Failed to add HTML: Page load timed out.; Gecko engine hit an error it was unable to recover from. Possible causes: XULRunner folder is corrupt or is from another version of ABCpdf. ---> WebSupergoo.ABCpdf9.Internal.PDFException: Gecko engine hit an error it was unable to recover from. Possible causes: XULRunner folder is corrupt or is from another version of ABCpdf. at WebSupergoo.ABCpdf9.Internal.Gecko.GeckoWorker.AddImageUrl(String url, Double pageWidthMm, Double pageHeightMm, AddImageUrlOptions options, UInt32& numCommands, Byte[]& data) --- End of inner exception stack trace ---


This took a while to track down. It is a combo of two things. One, if the page that you are rendering has something like this one it:

$(document).ready(function () { window.print(); });

And, your abcPDF Gecko MediaType is Screen. Regardless of your UseScript setting.

Now the document also refer to an error in another condition as well. Wouldn't it be awesome if they would give you the exception that will be thrown?

"For the Gecko engine, the Screen media must be used with UseScript true. An invalid combination (i.e. Screen with UseScript false) yields an exception when you call AddImageUrl or AddImageHtml."

I must also say, I have been a huge fan of WebSupergoo for a long time. I have programmed a lot of heavy duty PDF magic with their product. Also, I have been a fan of their support. But, I have to say their support is getting slow to respond and unhelpful.

Quick way to access the GAC

"Just hit Windows+R and type Assembly"