Friday, October 24, 2014

Could not load file or assembly Microsoft.ReportViewer.WinForms

Find it here:


Wednesday, October 15, 2014

PHP per-directory INI settings

Most of the configuration variables can be set on a per-directory basis (see PHP agent settings). This can be used when you have a single web server that is serving multiple applications, and:
  • You want to use a different application name for each of those applications.
  • You want to adjust certain settings on an application by application basis.
The mechanism to set per-directory values depends on the environment. This describes the three most common environments: Apache, php-fpm, and nginx.

Using API calls

Recommendation: Change your application name on a per-directory basis. This is useful when serving multiple applications from a single web server. While you can use per-directory settings to accomplish this, you can also use the newrelic_set_appname() API call. For other settings that you can modify, see The PHP API. Be sure to assign a unique name to each application.
If you do not have access to the code for your application, or if you need to isolate your applications to their own virtual hosts for other reasons, then follow the instructions to override the configuration file settings for your virtual hosts.

Apache settings for PHP

When using the PHP module, Apache provides two mechanisms for setting PHP variables outside he INI file:
  • Edit the httpd.conf file or one of the files it includes.
  • Edit the .htaccess file.

INI file per-directory configuration

Use The INI file configuration when your web server serves up multiple domains. To view each of these domains separately in the New Relic UI:
  1. For your main domain, set newrelic.appname = "My Main Domain" in your global INI file.
  2. Override that value for each of the virtual hosts by adding php_value entries as part of your virtual host configuration.
Note: Ensure you use the proper module name for your PHP install. Replace PHP_MODULE in the examples below with the name of the installed PHP5 module. This name depends on the Linux and/or PHP distribution being used. For example, common names include "php5_module," "mod_php5," "php_module," etc. Capitalization may vary.
For Apache servers you can find the module names in one of the following two ways. Each will generate a list of installed modules.
  1. From the command line, run apachectl -t -D DUMP_MODULES.
  2. From within a webpage, use this:
Here is an example of separating domains.
Note: Replace PHP_MODULE if you use this example.

  DocumentRoot "/path/to/vhost1/"
    php_value newrelic.appname "Virtual Host 1"

  DocumentRoot "/path/to/vhost2/"
    php_value newrelic.appname "Virtual Host 2"

In the above example, the newrelic.appname is set to a different value for each virtual host. For string and number values, use php_value name VALUE, where:
  • name is the name of the INI setting to modify as listed in the PHP INI settings.
  • VALUE is the value you want to set to for that particular virtual host.
Be sure to surround string values in quotes ("").
If you want to change a boolean setting, use the syntax php_flag name VALUE, where name is the variable name as listed in the PHP INI settings, and VALUE is either on or off.
To disable the New Relic agent completely for a virtual host, use a boolean flag:

  DocumentRoot "/path/to/vhost3/"
    php_flag newrelic.enabled off

.htaccess per-directory configuration

You can also use the syntax from the INI file example inside an .htaccess file. For example:
php_value newrelic.appname "My Blog App"
This allows you to control settings on a per-directory basis from within the directories.
In this example, your web server has its document root at /data/webroot. You also have two sub-directories for specialized applications:
  • Your /data/webroot/blog contains a blog application.
  • Your /data/webroot/shop contains a shopping cart application.
To have all three portions of your site reported as distinct applications in the New Relic UI, do this:
  1. Set the name of your main application in your INI file.
  2. Override that name using an .htaccess file in each of the specialized directories.
Any part of your web server (for example, /data/webroot/something) that does not have a specific.htaccess file will use the global application name defined in the INI file.
Note: The .htaccess file must be in the top-level directory for that application. Objects in that directory, or its subdirectories, will use the value specified in the .htaccess file.
For more information about using and securing .htaccess files, see the Apache HTTP server tutorial  .

php-fpm per-directory configuration

The FastCGI Process Manager (php-fpm) is dedicated to PHP. It spawns a number of worker processes that wait for requests. It increases performance by not re-initializing the PHP engine on each invocation, allowing each process to deal with a number of requests before it recycles.
For more information on php-fpm, see php-fpm's about page  and FastCGI Process Manager on  .
Note: Changing variables on a per-directory basis can be more difficult if you use php-fpm. You must use multiple php-fpm pools, one for each virtual host or unique application.
pool is a dedicated set of worker children that will only serve requests for that pool. Because it requires dedicated worker children, php-fpm scales poorly if you have a large number of virtual hosts or applications for which you want to set individual options.
To configure php-fpm on a per-directory basis:
  1. Set the main application name in the INI file.
  2. Set up two pools for the two additional applications.
  3. Override the application name setting in those pools.
Each pool has to have a unique connection mechanism (so you can identify which pool to use in your web server configuration file). Here is an example of php-fpm.conf:
php_value[newrelic.appname] = "My App 1"

php_value[newrelic.appname] = "My App 2"

php_flag[newrelic.enabled] = off
The general format of the per-pool variable settings is php_value[name] = VALUE for string or numeric variables, or php_flag[name] = VALUE for boolean values. Always surround string values with quotes (""). Boolean values must be either on or off.
Once the configuration file is set up, the web server must be instructed to use the different pools for different parts of the website. For more information, refer to the documentation for your web server.

nginx per-directory configuration

Note: This section applies only to PHP 5.3.3 or later.
Here is a small fragment of an nginx config file (similar to the Apache example) that shows the general procedure to pass values to your FastCGI manager based on an nginx location.
location /blog {
  fastcgi_param PHP_VALUE "newrelic.appname=My Blog";

location /shop {
  fastcgi_param PHP_VALUE "newrelic.appname=Shopping Cart";

location /admin{
  fastcgi_param PHP_VALUE "newrelic.enabled=false";
Recommendation: A better approach for nginx may be to use API calls. The following code snippet (for PHP agent 2.7 and higher) is an example.
  if (extension_loaded ('newrelic')) {
    newrelic_set_appname ("My App 1");

Roll-up application names

If you want to have an overall view of how the server is performing across all virtual hosts or all applications, it is convenient to be able to report to more than one application at a time. For example, report to a virtual host specific application as well as a roll-up application.
To do this, set more than one application name for the newrelic.appname parameter by separating each application name with a semicolon. The primary application name is first, and the secondary application names next. You can define up to two extra application names.
For example:
newrelic.appname="Virtual Host 1;All Virtual Hosts"
This will report to two New Relic applications: "Virtual Host 1" and "All Virtual Hosts". Note: This feature is only available in version 2.4 and later of the PHP agent.

For more help

Additional documentation resources include:
If you need additional help, get support at  .

Tuesday, October 14, 2014

The Top 7 Most Reliable SSL Certificate Providers

These days, we do most of our stuff online.  We pay our bills online, we bank online, meet our friends online, shop online, etc.  It is easier, faster and more practical.  It’s also more interactive and real-time. But did you know that there is a certain credential behind this e-commerce technology?  It’s called the SSL Certificate. This article will tackle some of the web’s top providers for SSL Certificates, which include DigiCert, Symantec and Verisign, among others.

What Is an SSL Certificate?

SSL is short for Secure Sockets Layer, which connects your computer to a server that is secure.  SSL is typically used to transfer your credit card details, personal information, banking details and tax information over to another business server.
Lauren Drell, at Mashable, writes that if you have an e-commerce website where you sell anything, then you should secure your site using an SSL certificate.  This is to guarantee to your customers that their information won’t be stolen and that they will not fall victim to identity theft.

The Top SSL Certificate Providers

The thing with SSL certificate providers is that it is usually a matter of who’s popular.  For example, if you have a customer who does not know what Verisign or Comodo is then chances are he would not care about this.  However, to a cautious customer, having his pages authenticated and verified by these companies will go a long way in assuring him that his site is safe.
Offerings from different providers are mostly similar to one another.  Packages offered and the features included in these packages are largely similar as well.
Who are the top SSL certificate providers? This depends on your needs, the features that you want, how popular and trusted these providers are, as well as the prices for the things that you need.  Also, a note of warning:  You might think that certificate authorities are infallible, but they are not.  Look at what happened with DigiNotar in 2011.  On July 10, DigiNotar’s certificates were found to be compromised, leading the company to eventually file for bankruptcy.  Hackers made off with hundreds of certificates, including one for Google that was used for spying in Iran.
Customers for those using DigiNotar were freaked out and even lost some sales until the company got another SSL certificate provider up and running.  They not only wasted time in getting another certificate provider up but they also lost trust while seeing their reputation damaged.  So be sure that you are getting real security by choosing a SSL certificate provider that really works hard to protect and secure the sites under their care.
Here are the best providers to consider:
  1. VeriSign
    Now under Symantec’s wing, VeriSign’s authentication business is considered to be one of the most trusted, and is in fact the one used by most of the big brands on the Internet. After its sale, VeriSign has seen a lot of name changes before the current Norton Secured brand name. VeriSign supports up to 256 bit encryption.  Their most expensive package, Secure Site Pro EV costs well over $1,000 but comes with outstanding features such as extended validation, $1.5 million warranty and vulnerability assessment.
  2. GeoTrust
    If you think that Verisign is a bit too expensive, then take a look at the packages offered by GeoTrust.  Basic encryption costs $149, while maximum security is guaranteed at only $299.  Expert support, 256-bit encryption and warranty are available for all options.
  3. Comodo
    Comodo has SSL certificate solutions for just about anybody: from home offices to businesses, from e-commerce to enterprises. The company also offers up to 256-bit encryption and is trusted by almost all browsers.  They provide unlimited server licenses, expert phone support and a $250,000 warranty.  The Comodo SSL package starts at $64.95 and you can set it up in just minutes.  Their Extended Validation package starts at $359 annually. While being one of the most reputable and trusted certification authorities in the world, you should note that Comodo once figured in a hacking incident, very much similar to the DigiNotar experience, where fake Comodo certificates were used to spy on some people in Iran.
  4. Digicert
    DigiCert is trusted by a veritable “who’s who” in the online world.  It is being used by multinational companies such as Microsoft, Yahoo, AT&T, Facebook,, Wikipedia, NASA and Core Logic, among others.  They offer up to 2048 bit SSL certificates at very reasonable prices.  For example, their Wildcard SSL certificates that protect your entire domain cost less than $500!  You could get their cheapest package for as low as $156 per year.
  5. Thawte
    Thawte is another low cost SSL certificate provider, with their cheapest plan going for $149 a year and offers up to 256-bit encryption, while their extended validation packages go for less than $600 (even less if you get a two year contract for only $995, or roughly $500 per year).
  6. GoDaddy
    Most people know GoDaddy as the biggest domain registration company, but they also offer SSL certificates that go for $69.99 for the Standard package and $89.99 for the Deluxe package.  Both packages can be customized to your needs.  But what gives GoDaddy an edge is that you have access to competent support 24/7.
  7. Network Solutions
    Network Solutions claims to have the lowest priced SSL certificates, especially for a multi-year term.  For example, getting the Network Solutions nsProtect Secure Express costs only $49.99 for a four-year term. This is lower than the $54.49 per year at GoDaddy, $132.25 per year at Thawte and $121.00 per year at GeoTrust. Network Solutions has support for 256-bit encryption, with more than 99% browser recognition, excellent round the clock support that includes online chat, fast issuance times and free reissues. What’s more, Network Solutions is a well-known and trusted brand.
Choosing the best and most reliable SSL certificates available might be a matter of trust.  You may be getting a provider that gives out inexpensive certificates but are not known.  At the same time, some of the more inexpensive certificates are just as reliable as the expensive ones. Beyond that, you should take a look at the level of service that your provider is giving you. They may be hyping it all up but just cannot give you competent and efficient customer service.  The certificate providers mentioned in this article are very well known and trusted, with packages that allow you to get the level of security you need at a price you could afford.

Thursday, October 2, 2014

list mailbox

Get-Mailbox | Out-File -FilePath d:\tmp\list.txt

Get-Recipient | GM

Get-Recipient | Select Name, EmailAddresses | Out-File -FilePath c:\tmp\email_list.txt