Takeshi EtoShared Team Foundation Server (TFS) 2015 hosting is now available in both our U.S. and European data centers.

Visual Studio Team Foundation Server 2015 is Microsoft’s latest update to their application lifecycle management solution.

TFS 2015 brings a wide range of improvements. Some of the new enhancements in TFS 2015 include the ability to rename team projects, quick code editing through the web portal, ability to display bugs in the task board, backlog and Kanban board management improvements, customizable cards, better identity control and Git integration improvements.

We offer a 30 day FREE trial of our shared TFS 2015 hosting solution for up to 5 users, so you can take it for a spin today.


Ray HuangNote that some of the information presented here regarding .NET 5 is no longer valid, due to fundamental changes made on the way to .NET 5 becoming ASP.NET Core 1.0. You can read more about those changes in the article, “Revisiting ASP.NET Core 1.0.”

For those tech gurus who just love to work with the latest Microsoft programming technologies, here’s a simple tutorial on how you can publish an ASP.NET 5 (vNext) application to DiscountASP.NET.

Please note that ASP.NET 5 (vNext) is still in Beta, so the instructions given today may or may not be valid in the future. The Release Candidate will not be available until November with the final release being slated for some time in the first quarter of 2016. More information can be found at Microsoft’s Roadmap. You’ll also want to go to the Official Website to read up on the new features as the file structure is very different from traditional web forms and MVC programming.

Another key feature is that vNext has been designed for maximum portability, allowing you to deploy your code to a Mac or Linux operating system. This guide is meant for developers who want to try it out now and only covers the publishing aspect, using the sample ASP.NET 5 Preview Template as an example.

Publishing the application locally and then uploading it using FTP:

In order to create a vNext application, you’ll need to obtain a copy of Visual Studio 2015 Professional or higher. Install it and then launch the program.

1) Select File -> New -> Project…


2) Under Visual C#, select Web and to the right, select ASP.NET Web Application. I’ll give this project a name vNextDemo.


3) Now in the New ASP.NET Project window, select Web Application for the ASP.NET 5 Preview Template. You can also uncheck Host in the cloud under Microsoft Azure. Click the OK button to continue.


4) Notice the new file structure in the Solution Explorer window. All the configuration files are now stored as JSON (JavaScript Object Notation) format. I won’t go into details regarding any programming aspects as this is not the purpose of this guide but wanted to point out a few things that you should be aware of. References are now added to your project using NuGet, and an ASP.NET vNext application publishes two folders, an approot folder containing all your assemblies, runtime libraries, and source code and a wwwroot folder which contains the static content of your website (e.g. html, images, css, etc.). This is important to know as it must be maintained in order for your application to work properly.


5) Since the sample application is already complete, let’s start the publishing process. Select Build -> Publish from the menu bar.


6) Click on File System.


7) Give the profile a name.


8) Find a path on your local machine to target the publishing. I created a vNextDemo folder under the Downloads folder. Click the Next> button.


9) On the Settings page, choose Release for Configuration. For the Target DNX Version, you should be able to choose any, but it should match the framework your application is written in. For more information about DNX and what it is, the official documentation can be found here.  If you plan to use the 64-bit versions, you will need to open up a support ticket to request that support for 32-bit applications to be disabled in order for it to work properly.  You can uncheck Publish using Powershell script. Click on Next>.


10) Click the Publish button to start.


11) After your project has been published, you should see the two folders approot and wwwroot.


12) Open up the web.config file in the wwwroot folder and add the following XML markup in the <configuration> section to enable Full trust:

    <trust level="Full" />

Upload these two folders to your hosting account. You can ignore the other files. Now, mark the wwwroot folder as a Web Application using the tool in the DiscountASP.NET Control Panel.


13) That’s it. Your application now works but only from a sub-directory (i.e. http://www.mysite.com/wwwroot).


Publishing the application to the root of the site:

If you want it to work in the root, you just need to make a few modifications after publishing. First, modify the project.json file in /approot/src/projectname directory by changing the first line from “webroot”: “../../../wwwroot” to “webroot”: “../../../htdocs”.  Upload the contents of the wwwroot folder directly to the root of the hosting account along with the approot folder. Open a support ticket and request that we move the approot folder one level up (i.e. on the same level as the htdocs folder). And voila, your application is now working from the root.


Publishing Directly Using FTP within Visual Studio:

You can also publish directly using FTP within Visual Studio by creating and using a publishing profile. Open up Notepad, copy and paste the following markup (contents) into Notepad:

<?xml version="1.0" encoding="utf-8"?>
  <publishProfile profileName="FTP" publishMethod="FTP" publishUrl="ftp://ftpaddress" userName="username" userPWD="password" destinationAppUrl="http://wwwaddress" />

replacing ftpaddress, username, password, and wwwaddress with the appropriate values. Save the file and name it ftp.publishhsettings without the .txt extension. Now at Step 6 above, instead of choosing File System, select Import instead and use the ftp.publishsettings file. The rest of the instructions that follow should apply when configuring the application.

Please note that Web Deploy publishing is not supported at this time and to run an ASP.NET 5 (vNext) application requires it to be deployed to an IIS 7.5 or higher server.


Takeshi Etocloud backup solutionI’m excited to announce that our Cloud Backup service will now automatically back up your SQL databases off-site to the Amazon cloud. So Cloud Backup has you covered for your website, SQL and MySQL databases.  You are in full control of when backups are made and how many versions to keep.

Automated SQL backups is a feature that many customers have been asking for over the years and we are happy to be able to deliver this solution to you.

And that’s not all….

While we were working on enhancements, we added Blacklist Monitoring as well. With this feature, we will monitor Google to detect if they ever flag your site for being compromised. If we detect a Blacklist event, we’ll alert you and stop the backups of your site and databases so that you are not making backups of compromised files. This should help you recover your clean backups more easily.

The “peace of mind” Cloud Backup solution starts at $1.75/mo. You can order Cloud Backup in Control Panel.


July Updates

On July 23, 2015, in Announcements, by Ray

Ray HuangHere’s a list of our Web Application Gallery updates for July:

  • Acquia Drupal 7.37.43
  • BlogEngine.NET 3.1
  • DotNetNuke 7.4.0 Community Edition
  • Joomla 3.4.1
  • mediaWiki 1.24.2
  • mojoPortal
  • MonoX
  • nopCommerce 3.50
  • Orchard 1.9
  • phpBB 3.1.4
  • phpMyAdmin 4.4.7
  • SilverStripe CMS 3.1.12
  • Umbraco CMS 7.2.5
  • VevoCart 6.2.0 *NEW*
  • WordPress 4.2.2

Ray HuangLately I’ve been evaluating some companies that offer email communication solutions and was introduced to SendGrid by a coworker.  I found it offers a lot of great features to help someone reduce the time to create marketing emails, customer communication emails, newsletters, etc.

SendGrid offers a free account that you can use to send 12,000 emails every month. You’ll need a SendGrid account for this tutorial, so if you don’t already have one, take a minute to set up an account now.

In many cases you can start using SendGrid very quickly simply by changing the SMTP connection string in your application to use SendGrid’s SMTP server. But in this post I will show you how easy it is to create emails from start to finish, highlighting a couple of the features SendGrid offers.

A Simple Contact Form

Here are instructions on how you can create a simple contact form and send the results to yourself using SendGrid’s API.

1) Startup Visual Studio (in this demo, I am using Visual Studio 2013 and C# for my example).

2) Select File -> New -> Project…


3) Select the Web template and give your project a name.  In my example, I named it SendGridExample.  Hit the OK button to continue.


4) Select Empty template and hit OK.


5) Add the SendGrid C# Library (or whatever programming language you prefer to use) using NuGet.  Under Tools, select Library Package Manager -> Manage NuGet Packages for Solution…


6) Select the Online menu item on your left and in the upper right search text box, type in “sendgrid”.  Hit the Install button to install the library(ies) you need.


7) Now let’s add a Web Form for the project.  Under Solution Explorer, right click on the project name and select Add -> Web Form.


8) We’ll give the form a name like ContactUs.


9) Now go to Design View and using the Toolbox on your left, create a form using tables, text boxes, and text and add a submit button (e.g. Contact Us) as shown below.


10) Double click on the Contact Us button to bring up the code behind (ContactUs.aspx.cs) file and in the submit button Click Event, paste and modify the code below to your liking.  In this example, I am using SendGrid’s proprietary mail class, so you’ll need to add a using SendGrid statement to your list of includes at the top.  If you prefer and want to simplify your code a bit, you can just use .NET’s built-in libraries (i.e. System.Net and System.Net.Mail) to compose the email instead, and we provide sample code here.

Both cases require the .NET mail libraries.

var message = new SendGridMessage();
List<String> recipients = new List<String>
  @"Contact <contact@acme.com>",
  @"Marketing <marketing@acme.com>",
  @"Test <test@acme.com>"
message.From = new MailAddress("contact@acme.com", "Contact Us Form");
message.Subject = subjectTextBox.Text;
message.Html += "<strong>Name</strong>: " + nameTextBox.Text + "<br />";
message.Html += "<strong>Address</strong>: " + addressTextBox.Text + "<br />";
message.Html += "<strong>City</strong>: " + cityTextBox.Text + "<br />";
message.Html += "<strong>State/Province</strong>: " + stateTextBox.Text + "<br />";
message.Html += "<strong>Country</strong>: " + countryTextBox.Text + "<br />";
message.Html += "<strong>Zip Code</strong>: " + zipCodeTextBox.Text + "<br />";
message.Html += "<strong>Telephone</strong>: " + telephoneTextBox.Text + "<br />";
message.Html += "<strong>Email Address</strong>: " + emailAddressTextBox.Text + "<br /><br />";
message.Html += messageTextBox.Text;

var credentials = new NetworkCredential("apikey", "API_Key");

var transportWeb = new Web(credentials);



SendGrid recommends that you create and use an API key to authenticate and send email, but you can also use your SendGrid username and password. If you use the API key, use “apikey” for the SMTP username.

11) That’s it. Press F5 to build and test your code.

A Marketing Email or Newsletter

SendGrid offers a wide variety of features that allow you create, manage, and perform analysis on marketing emails or newsletters such as Click Tracking, Google Analytics, Open Tracking, and Subscription Tracking just to name a few.  I’ll demonstrate some of these features in the program below.

1)    In the same project, add a new web form and name it SendNewsLetter.  Open the code behind file and in the Page_Load Event Handler, paste and/or modify the following code to your liking.

var message = new SendGridMessage();
List<String> recipients = new List<String>
  @"Contact <contact@acme.com>",
  @"Marketing <marketing@acme.com>",
  @"Test <test@acme.com>"
message.From = new MailAddress("postmaster@acme.com", "Postmaster");
message.Subject = "November ACME Newsletter";
message.Html += "Here is your ACME Newsletter for the month of November.  We have a number of exciting deals this month<br /><br />";
message.Html += "ACME Toy Cars are now just $29.99 and will make a great gift for kids for the holidays.<br /><br />";
message.Html += "ACME Christmas Trees ornaments, only $59.99 for a box of 20.  Click <a href=\"http://www.troubleshootingcenter.com\">here</a> for more details.<br /><br />";

var username = "sendgridusername";
var password = "sendgridpassword";
var credentials = new NetworkCredential(username, password);

var transportWeb = new Web(credentials);



2)    Now go to your SendGrid Account, expand the Settings node on the menu to your left, and click on Tracking.  Enable Click Tracking, Open Tracking, and Subscription Tracking.  If you notice in the code above, I’ve added an HTML link to a webpage.  Click Tracking will track if the user clicks on that link which is embedded into your newsletter.  Open Tracking will track if a user opens an email, and Subscription Tracking will automatically add a unsubscribe link to your email so that it complies with the CAN-SPAM Act.  The beauty of these features is that no extra coding is needed to implement them.  SendGrid automatically does that for you with the flip of a switch.  Hit F5 to build and test the code.  Once you receive the email, try clicking on the HTML and Unsubscribe links and proceed to the next steps.


3)    To check if someone has clicked on a link in your newsletter or unsubscribed, just go to the Dashboard or click on the Stats menu item.


4)    To check the status of an email such as Delivered, Opened, etc. click on the Activity menu item.


5)    That’s it for these features.  You can use these tools (and combine them with others offered) to help you gauge the effectiveness of your marketing campaign and customer engagement and make adjustments if need be to improve your program.  If you’re not a developer and find coding hard to understand, then you’re in luck.  SendGrid provides a Marketing Email wizard and WSIWYG interface with templates to help you draft very professional looking marketing emails.


Other features you will want to explore include white labeling, alerts, spam checking, and webhooks.  Using SendGrid, you can fine tune your marketing campaigns to get a better ROI.


Ray PenalosaWe all knew it was coming. As of July 14, 2015 Windows Server 2003 support is ending and Microsoft will stop supporting the platform. That doesn’t mean that Windows 2003 will not run – it means that any security holes, vulnerabilities, or exploits found on the platform will no longer be patched or fixed by Microsoft.

I know that change is always difficult, and no one likes going through the ordeal of moving a site and testing it. At DiscountASP we took a proactive approach. We began planning for this two years ago and we invested a great deal of time and care into helping our customers move to either a Windows 2008 or Windows 2012 server. The vast majority of the migrations were performed by the DiscountASP migration specialists, trained professionals with expertise in moving web site files to a new server.

We had over 60 Windows 2003/IIS 6 servers to retire, which amounted to over 6,000 sites.

DiscountASP web migration specialists

Moving done right.

Every site migration began with pulling up the site on the browser to ensure it was functioning and pointing to our web servers (and of course everyone was emailed prior to migration to let them know when it would be taking place). Then file migration from one server to another took anywhere from 40 minutes to well over an hour depending on the size and number of files. Once transfer to the new server was complete, we viewed and tested the site on the new server.  If any code modifications or account configuration needed to be set, we took care of that, then emailed the site owner letting them know that their migration was complete.

Our migration specialists took the extra step of modifying account settings, application settings and connection strings for older .NET 1.1 applications that displayed an error after migration. Because of that kind of attention to detail, the vast majority of our members weren’t even aware of the actual move, and the entire process was transparent to them.

For those who took advantage of our temporary IIS 7 and IIS 8 testing platforms, we worked closely with them to move a copy of their site to the testing environment where they were able to fully test the compatibility of their web applications. Any code modifications, server or account settings that were needed were done in the test environment.  When testing was completed we manually moved the site to the new platform.  This eliminated any possible application disruptions that could have occurred during the migration to the new platform.

This was all done manually and free of charge, one site at a time.  When everything was said and done, it took over 6,000 hours – or a full 250 days – to migrate the sites and finally retire the Windows 2003 servers. And finally, a statistic we’re very proud of: more than 99% of our customers did not experience any disruption of their websites.

DiscountASP.NET customers now have the peace of mind that their sites and web applications are being hosted on safer servers, and they also have greater server resources available to their busy sites.

Add Raymond Penalosa to your Google+ circles.
Visit DiscountASP.NET to learn more about our ASP.NET hosting services.


Michael PhillipsNote: beginning with Chrome version 46 the yellow caution triangle has been removed from the https URL when Chrome encounters minor errors such as those described in this article.

If you use an SSL certificate (https) on your site, you may have seen a couple of new things happening in Google Chrome version 41 or later. Various warning messages such as, “The identity of this website has not been verified,” “Your connection to <domain> is not encrypted,” or other visual indications that the https connection is not secure have started to be displayed.

Those appear when your SSL certificate uses a SHA-1 signature (most SSL certificates issued before 2015 use SHA-1).


To fix the problem of browser security warnings you must re-key your SSL certificate for SHA-2. If you don’t see those warnings in Chrome and you purchased your certificate recently, it may already be SHA-2. You can verify using this test site.


If you purchased your SSL certificate from us, here’s how to re-key:

1) Contact us and we will re-generate and re-submit the CSR.

2) You’ll then get an email from GeoTrust with a link to complete the process. When completing the re-key on the GeoTrust site, be sure that SHA-2 is selected as the “Hashtag Algorithm.” You can find step-by-step instructions (and a video) here.

3) After you’ve completed the reissuing process, you’ll receive an email with the new certificate. Go to Control Panel and paste the new certificate into the SSL Manager.


If you purchased your SSL certificate elsewhere:

1) Contact us and we will re-generate the CSR and email it to you. Then you’ll have to contact the issuer of your certificate to get your certificate re-keyed for SHA-2.

2) When you receive the re-keyed certificate, go to Control Panel and paste the new certificate into the SSL Manager.


“Obsolete cryptography” message after re-keying with SHA-2

There is another potential problem after you’ve re-keyed your SSL certificate. While the address bar will show the green lock icon, if visitors look at the certificate details in Chrome, they may see an “Obsolete Cryptography” message.


What’s happening is the Chrome Browser is ignoring the cipher preference we use on the server (which includes their preferred ciphers) and pointing out any “weak ciphers” they find. You might notice that many large corporate sites are also insecure according to Chrome, for similar reasons:


That “obsolete cryptography” message may persist for a while because Google is not providing any information on exactly what they want from the server to stop calling it insecure. It would appear that Google would like to see every server everywhere remove support for all older cryptographic methods.

We understand the reasoning behind that, but the problem with removing some of those methods is doing so will shut out visitors using some older browsers and operating systems that don’t support newer methods (such as Windows XP). Since our servers are shared by many customers, it isn’t really an option for us to make global changes that prevent some visitors – even a small number – from accessing our customer’s sites.

We do maintain special servers that do not support any of the older cryptography methods, and they are available if you’d like to move your site. The servers are primarily used by customers who need a “hardened” server to pass a PCI compliance scan. But the added security does introduce some issues, such as older browsers being unable to connect to sites on those servers via https. There are also a few other caveats that may require adjustment or a work-around on your part. But if you’d like to move your site to such a server, or need more information, let us know.

We continue to monitor information from Google on recommended server configuration, as well as testing various configurations ourselves to prevent the “obsolete cryptography” message.

If you have any trouble re-keying a certificate, or if you have any questions about these ongoing changes, let us know and we’ll do our best to help.


Windows hosting platform updated to .NET 4.5.2

On March 26, 2015, in Announcements, by Takeshi Eto

Takeshi Etoasp.net 4.5.2 hostingWe have updated both our Windows 2012 and Windows 2008 platforms to .NET 4.5.2.

Some of the enhancements of ASP.NET 4.5.2 include better ability to schedule async work items, better control over http headers, and debugging improvements.

This update is an in-place update so we did not rush pushing it out. Experience has taught us that in-place updates can be disruptive to some customers despite Microsoft assurances of backward compatibility. In fact to be on the safe side, when we updated to .NET 4.5.1, we only updated our Windows 2012 platform, leaving our Windows 2008 R2 platform at .NET 4.0, so that we could move customers should any unforeseen issues arise from the update.

However, updating our entire hosting platform to  .NET 4.5.2 is now important because Microsoft announced that they will be deprecating .NET 4 – ,NET 4.5.1 in early January 2016. In the future, Microsoft intends to only support the latest few frameworks.

At the end of February, we updated our Everleap cloud hosting platform to .NET 4.5.2 and we did not encounter any issues, so we scheduled the update for DiscountASP.NET at the end of March during the usual maintenance window. You can now enjoy the latest Microsoft web stack. Of course, if you do notice any issues, please contact us right away.

iBlog by PageLines