Top 10 Things We Accomplished in 2018

Takeshi Eto Another year flew by…. Here is my annual Top 10 list for 2018.

1. Launched Windows 2016 Hosting
We launched Windows 2016 hosting with IIS 10.x in our US-based datacenter.

If any customer wants to move to Windows 2016, just reach out to our support team and we’ll move your site.

2. Continued to add support for .NET Core
We updated our server support for .NET Core 2.0 and .NET Core 2.1. Because there are so many minor versions, we put together a knowledge base article that lists the .NET Core versions that are currently supported on our webservers.  For the versions listed in the knowledge base, you can use Framework-Dependent deployment.  If you are using a .NET Core version that is not listed, then you can upload your application using Self-Contained Deployment.

3. Launched Office 365 at
We are offering Office 365 Business and Enterprise Plans for our US-based cutsomers over at our cloud hosting brand,, and our service includes technical support. If any DiscountASP.NET customers are interested in Office 365 subscriptions, let our technical support team know.

If you have existing Office 365 subscriptions and are unhappy with the support you are receiving, you could consider migrating your Office 365 subscriptions over to us and get support from our support team. Reach out to our support team in interested.

4. Prepared for GDPR
The new EU General Data Protection Regulation took effect in May 2018. This new regulation is a lot tougher than prior regulations and imposes more costly penalties. That is why it’s a big deal and we all saw a LOT of activity around customer privacy around the time the GDPR took effect. We also updated our policies and procedures to adhere to the principles of the GDPR.

5. Renewed our EU-US Privacy Shield and Swiss-US Privacy Shield Certifications
privacy shield frameworkWith the assistance of our Privacy Management Solutions Partner, TrustArc, we successfully renewed our certifications for the EU-US and Swiss-US Privacy Shield Framework.

With the GDPR coming into effect in May 2018, it is fair to ask why we would bother renewing these certifications. Because the GDPR is so new and it’s implementation into real-life practice is still evolving, we are aware of no official certification. In other word, no company out there is currently willing to put themselves at risk for legal GDPR compliance exposure on behalf of their partners. However, there are official certifications for the Privacy Shield Framework so we decided to renew our Privacy Shield certifications this year to officially demonstrate our commitment to our customer’s privacy.

6. Won another Visual Studio Magazine 2019 Readers Choice Award
Best ASP.NET Hosting - Bronze Award - Visual Studio MagazineWe won the 2019 Bronze Award in Visual Studio Magazine’s Readers Choice Poll. And we didn’t even know that we were nominated! Visual Studio Magazine informed us at the end of 2018. What a great way to end the year!

7. Grew our Private Cloud Business
Over the years, we have quietly hosted some fully-managed Private Cloud environments (separate from our shared hosting platform and cloud hosting platform) for a few partners but in my Top 10 Accomplishments list for 2017, I made a public mention of these services. Over the past year we’ve seen many customers whose business had outgrown DiscountASP.NET or our Everleap platform and/or needed more services than webhosting. For these types of customers, we can build custom hosting environments and manage their business IT infrastructure, providing our high level award-winning support – which could include consulting, infrastructure right-sizing, DBA services, customized backup solutions, high-availability environments, and server and application monitoring.

If you are outgrowing DiscountASP.NET, have mission critical applications, and/or need more than traditional webhosting services, then reach out to us and we can discuss your needs and how we can help.

8. Renewed our Microsoft Partner Status
Every year we devote some resources to renew our Microsoft Partnership status. In 2018, we renewed our Microsoft Partner status with the Silver Datacenter competency.

9. Continued supporting the developer community
Over the past 15 years, we have supported the developer community through sponsorships and complimentary hosting. Here are some of the sponsorships we participated in during 2018 –  Houston TechFest 2018, SoCal Code Camp, Orlando Code Camp, Pittsburgh GiveCamp, SW Ohio GiveCamp, and Dallas GiveCamp. We also provided sites for Microsoft MVPs and MVP Reconnect members. If you run a developer event, usergroup, Microsovt MVP, or MVP Reconnect member, please feel free to reach out to us.

10. Moved into our new office space
The past couple years has been a challenge for our staff as we moved our physical office twice into temporary office spaces, while we worked on securing a more permanent space and built out the new space. The build-out took a lot longer than we anticipated but we finally finished moving into our new office space. We look forward to not having to deal with the disruptions associated with moving.


We wish everyone success in the new year!


DiscountASP.NET Wins Visual Studio Magazine 2019 Readers Choice Award for Best ASP.NET Web Hosting

Takeshi EtoThis is nice way to end the year.

Best ASP.NET Hosting - Bronze Award - Visual Studio MagazineI am proud to announce that DiscountASP.NET won the Bronze Award for the “Web Hosting” category in Visual Studio Magazine’s 2019 Readers Choice poll. It’s nice to know that even after 15 years of offering ASP.NET hosting, our services are still resonating with developers.

Here is a BIG THANK YOU to all who voted for us and thank you for your continued support!

SoCal Code Camp 2018 at USC on Nov 10-11

John Meeks
This November 10th weekend, SoCal Code Camp 2018 is coming to the USC campus.

SoCal Code Camp

The SoCal Code Camp is a great event to network with fellow developers in the Southern California area and learn something new. If you can make it out this weekend go support your local developer community with great sessions and prizes. And, it’s a FREE event.

DiscountASP.NET renews EU-US and Swiss-US Privacy Shield Certification

Takeshi Eto
In 2016 we achieved the EU-US Privacy Shield Certification and in 2017 we attained the Swiss-US Privacy Shield Certification. Both of these were new frameworks that emerged after the previous Safe Harbor Framework was struck down by an EU court.

privacy shield frameworkOctober is our renewal month and I’m happy to announce that we worked with our privacy management solutions partner, Truste, and successfully renewed both Swiss-US and EU-US Privacy Shield certifications. You can get more information on the Privacy Shield program at

Earlier this year there was a LOT of privacy policy updates due to the EU General Data Protection Regulation (GDPR) coming into effect in May 2018. So you may ask, why bother with the Privacy Shield Framework? That’s a good question that we asked ourselves too.

The GDPR is brand new and, while the agreement itself was finalized, its interpretation and its related business practices are still evolving. At this time there is no solutions provider, including our partner Truste, that offers an official GDPR certification. I haven’t seen any “GDPR certified” seals on any website out there. Let us know if you see anything like that.

But since there is an existing official certification process for the Privacy Shield Frameworks, we believed that it was important for us to renew our Privacy Shield status to demonstrate our commitment to customer privacy. I hope you agree as well.


October 2018 Web Application Gallery Updates

Ray Huang

Below is a list of our Web Application Gallery updates for October 2018.



  • DotNetNuke (DNN) Platform
  • Gallery Server Pro 4.4.3
  • Joomla 3.8.12
  • mediaWiki 1.31.0
  • Moodle 3.5.2
  • nopCommerce 4.10
  • phpBB 3.2.3
  • phpMyAdmin 4.8.3
  • Umbraco CMS 7.12.2
  • WordPress 4.9.8

3 Ways to Redirect HTTP to HTTPS and non-www to www in ASP.NET Core

Ray HuangIn support, we’ve been seeing a lot of issues with URL Rewrite in ASP.NET Core.  Core is a complete rewrite of .NET and so things have changed. In ASP.NET Core, URL Rewrite is no longer handled by the URL Rewrite module (web.config file) but is now served by URL Rewriting Middleware.

This basic tutorial shows you three ways on how you can implement URL Rewrite rules using the Microsoft.AspNetCore.Rewrite library.

Let’s start by creating an empty ASP.NET core application.  In Visual Studio 2017, go to File -> New -> Project… (Ctrl-Shift-N).  Select Web -> ASP.NET Core Web Application.  Name the application and click on OK to continue.

In the Project template window, highlight Empty and click OK to continue.

In order to use the Microsoft.AspNetCore.Rewrite library, we’ll need to add it using NuGet.  Go to Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution…  Under Browse, type in Microsoft.AspNetCore.Rewrite, highlight it, check the checkbox next to your project, and click on Install.

That’s it.  Now, you’re ready to add URL Rewrite rules to your website.  Here are the 3 methods.

Method 1 : web.config/.htaccess file

If you know nothing about how to use the new URL Rewrite Middleware libraries or need some time to learn it, then you’re in luck.  You can still use the good old URL Rewrite syntax from the web.config file.  Right click on your project, select Add -> New Item… (Ctrl-Shift-A), highlight Data under ASP.NET Core, and select XML File.  In this example, I will name the file RedirectToWwwRule.xml, click on Add, and add the following markup to the file:

    <rule name="CanonicalHostNameRule">
      <match url="(.*)" />
        <add input="{HTTP_HOST}" pattern="^www\.domain\.com$" negate="true" />
      <action type="Redirect" url="{R:1}” />

Make sure you replace “” with your domain name in both the pattern and url.  Highlight the XML file and make sure in the Properties window, you select Copy always in the Copy to Output Directory field.  Now open up the Startup.cs file, add a using Microsoft.AspNetCore.Rewrite; directive at the top and enter the following code in Configure method:

app.UseRewriter(new RewriteOptions()
   .AddIISUrlRewrite(env.ContentRootFileProvider, "RedirectToWwwRule.xml")

What this does is redirect the non-www version of the URL to the www version and redirect HTTP requests to HTTPS.  You could also have removed the .AddRedirectToHttps() method and included it the URL Rewrite rule in the XML file and that would have worked too.

What’s great about RewriteOptions() is that if you place a . after it, IntelliSense will show you the available methods that you can use.  You’ll notice an AddApacheModRewrite() method which means you can use the rewrite rules from a .htaccess file instead, providing great flexibility for implementing rules from different sources.

Method 2 : Regular Expressions and HttpContext.Request.Path

The second method is fairly straightforward using a regular expression to perform the redirect.  Add the following code to the Startup.cs file:

app.UseRewriter(new RewriteOptions()                
   .AddRedirect("^foo$", "bar")

What this does is exactly the same thing as above but performs an additional redirect if either of these URLs is entered:

This will redirect to:

Note that the AddRedirect() method evaluates the regular expression against the HttpContext.Request.Path, so if you need something more complicated, you’ll need to use the first or last method.

Method 3: Adding a Rule using a Class

The last method involves implementing a rule using a class.  Right click your project, select Add -> New Item… and add a class named RedirectToWwwRule.cs.  Replace the entire class with this code:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Extensions;
using Microsoft.AspNetCore.Rewrite;
using System;

namespace URLRewriteSample
    public class RedirectToWwwRule : IRule
        public virtual void ApplyRule(RewriteContext context)
            var req = context.HttpContext.Request;
            if (req.Host.Host.Equals("", StringComparison.OrdinalIgnoreCase))
                context.Result = RuleResult.ContinueRules;

            if (req.Host.Value.StartsWith("www.", StringComparison.OrdinalIgnoreCase))
                context.Result = RuleResult.ContinueRules;

            var wwwHost = new HostString($"www.{req.Host.Value}");
            var newUrl = UriHelper.BuildAbsolute(req.Scheme, wwwHost, req.PathBase, req.Path, req.QueryString);
            var response = context.HttpContext.Response;
            response.StatusCode = 301;
            response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Location] = newUrl;
            context.Result = RuleResult.EndResponse;

Then add the following code to your Startup.cs file:

var options = new RewriteOptions();
options.Rules.Add(new RedirectToWwwRule());

This does essentially the same thing as Method 1.

Many thanks to the folks at StackOverflow for supplying the sample code for the rule,  and I hope it helps the folks out there that are struggling with ASP.NET Core and URL Rewrite to get started.

Windows Server 2016 Hosting

Takeshi Eto Windows 2016 hosting with Internet Information Services (IIS) 10.x is available in our US-based data center. In the DiscountASP.NET Order form, you can select Windows 2016 for your O/S.

Any existing customers who wish to move their site(s) to the Windows 2016 hosting platform, please contact our technical support staff so we can schedule a migration.

Windows 2016 hosting