At this time, we are in a beta phase and developers can sign up for FREE to test out the PaaS platform and provide us with feedback and suggestions. During the beta, we will continually be introducing new features and will be improving the system.
What is Snapp?
Our PaaS solution is an elastic cloud hosting platform for .NET applications. Snapp provides a scalable hosting platform where developers can increase or decrease the number of workers, but there is much more…
What is different about Snapp?
1. Deployment Options – Developers can deploy applications the way they want to without a learning curve. Snapp supports web standard FTP, web deploy, GIT, and Team Foundation Server.
2. Staging Done Right – Snapp is the first PaaS that comes with a configurable staging and production environment for every application. Developers can actually test their applications before it goes live.
3. Exception Management – Snapp comes with an exception management system to help developers identify issues with their application.
4. Easy Rollback – Eveytime an application is published from staging to production, we’ll keep a snapshot of the application in a repository. If anything unforseen should happen in production, rolling back to a previously working snapshot is just a click away.
Why launch a .NET PaaS?
Our focus at DiscountASP.NET from inception has been to empower .NET developers with hosting solutions. So we’ve been providing cutting-edge shared hosting solutions for .NET developers for the past decade.
But — we’ve also seen the needs of developers change over the last decade. And we will evolve too.
We’ve seen improvements in back-end cloud hosting technologies and changes in application lifecycle management with the adoption of a more agile and continuous development rhythm, and the increase in development activities in mobile web applications. When we asked ourselves what kind of cloud hosting solution we could offer to help make developers lives more productive, we kept converging on a Platform-as-a-Service solution.
Snapp is built on top of Antares, code name for Azure Services for Windows Servers. Antares is the same technology Microsoft uses to run Azure Web Sites, which is being made available to hosting partners. We’ve been working with Microsoft over the past year+ on Antares.
Call to Action -We need your help
Thank you for reading this blog post to the very end. Please help us by signing up for our FREE beta and taking Snapp for a spin. What we have here is still bare bones and please excuse the dust. We have plenty of great ideas cooking to make Snapp really rock and we could use all the feedback from you to help us improve Snapp and help prioritize the feature enhancements, to ultimately make your work more productive.
When people want to start incorporating e-commerce activities in their site, they must be PCI compliant to do so. There are many different companies/organizations out there that can help you determine if your web site is PCI compliant.
Many criteria must be met to be PCI compliant. One of those criteria is to setup a custom error page. Custom error pages are important because it hides the true error your application may display. The true error messages can be used to dissect and infer the back end design and structure of your web application. Information that can be used to find weaknesses and exploit your web application.
In IIS, there are two types of custom error handling that you can and will need to set on your site. One is the traditional IIS custom error that is normally processed on the IIS level. The other is the ASP.Net custom error handling that is processed on the ASP.Net application level. ASP.Net custom error handling is a bit tricky due to how it is processed through the handlers and depending on where it bombs out, can ultimately determine whether your ASP.Net custom error triggers.
In most cases setting up your ASP.Net custom error handling is straightforward. To achieve this, you simply add the “customErrors” element to your application’s web.config file. The main attribute you will need to ensure is the “mode” attribute within the “customErrors” element. You have three distinct choices. They are “On”, “Off”, or “RemotelyOnly”. You want to set it either for “On” or “RemoteOnly”.
Now here’s a caveat to being PCI compliant, some services will scan your site and test specific conditions to determine whether you have custom error handling enabled. And one of the conditions they may throw at your application is passing a value/URL to your site that is similar to :
which will not display your custom error page. However if you call a file that you know does not exist in your site:
you will find that your custom error page is displayed.
Confusing? Take a short breather and let me quickly explain.
Your ASP.Net custom error handling does work and the reaction your site invokes when someone calls on your site with the condition of “/[fakefile]?aspxerrorpath=/” is actually by design from Microsoft. This condition in the URL request will stop the process from reaching the custom error handler thus bombing out before it can display your custom error page.
So what’s the solution? The only work around that we can find is to setup a RequestFiltering rule to filter out the string “/[fakefile]?aspxerrorpath=/” from the URL string being called to your site.
In your web.config file input this code in your RequestFiltering element.
<requestFiltering> <denyQueryStringSequences> <add pre="" sequence="<span class=" hiddenspellerror="">aspxerrorpath=" /> </denyQueryStringSequences> </requestFiltering>
Another way to implement this rule is through the IIS 7 or IIS 8 Manager using the RequestFiltering module and setup the rule under the Query Strings tab with the query string “aspxerrorpath= “ set to Deny.
This will block the URL string “/[fakefile]?aspxerrorpath=/” whereby forcing it to call upon the file directly.
We are sponsoring the AZGroups Day of .NET again this year.
This year’s event will be held on May 16th at the Scottsdale Center for Performing Arts. We’ve been honored to work with Scott Cate, host for the event, and the AZGroups for many many years. The event is now in it’s 10th year and is most noted for bringing Scott Guthrie to Scottsdale to speak.
In fact, the event has now come to be known simply as the Scott Guthrie Event or ”the Day of ScottGu.” The event is free, but you will need to register.
As with last year, our very own Takeshi Eto will attend the event and speak as one of the sponsors. If you’re attending, feel free to accost him in the hallway to say “hi” and cheer louder during his presentation.
We asked, What was the percentage of your web site traffic coming from mobile (smartphones and tablets) in 2012?
This is how our users answered:
Well, for those of you who don’t know how much of your traffic is coming from Mobile clients, we have SmarterStats to help you find out.
If you haven’t enabled SmarterStats for your hosting account, here’s how to do it:
Log in to Control Panel and go to Stats / Raw Logs.
Click the Enable button next to SmarterStats (Free) (Yup, that’s right! We provide this to you for free. )
Alright Martin I have enabled SmarterStats what do I do now?
Well now all you have to do is relax for about an hour and let SmarterStats process the HTTP logs for your site. SmarterStats processes our HTTP server logs for your site to provide you a nice interface.
After the hour has passed, login to your SmarterStats account. You can find the login information in the Stats / Raw Logs section of Control Panel.
When you log in, expand the Report Items folder and expand the Browsers folder too.
Now click on Mobile Phones.
Cool Martin! Now how do I save this report and change the date range at the same time?
Well… if you like the report you see and you would also like to change the date range, all you have to do is click on the Add Favorite icon in the report you just clicked on.
This will then open the Following Window:
Click on the drop down menu next to Default Date Range and choose the date range you wish to use. Then go ahead and choose any of the other settings you wish to use and click on the OK button.
This report will be placed in the Favorites section in SmarterStats.
Another cool thing you can do to stay in the loop is to set up a Custom Report. That way you can have the report emailed to you daily, weekly, or monthly.
Expand the Custom Reports folder. Now click on the New Custom Reports.
The following web page will appear:
Go ahead and enter a name for your report in the name field, choose the Default Date Range, and click on the Report Items tab.
Click Add Item.
Click the drop down menu next to Report Item and select the favorite report you just created.
Now click Save.
This report will now be in your Custom Reports folder.
Click on the Scheduled Email Reports icon.
Click on the Add Email Report icon.
From the Reports drop down menu select the report you just created.
In the Frequency field select how often you wish to receive this report.
In the To field enter the email address you wish to send to.
Now click on Optional tab to add more email address to send to.
You might also want to place a check next to Enable graphical charts (HTML only) that way you get a nice graphical chart to refer to in your email message.
Click Save when finished.
Well, with all that said and done, I hope this helped some of you stay up to date with what type of traffic your web site is receiving.
I already provided some reasons why you see this error in the Control Panel in a previous blog post:
so I won’t bore you with the details again. Instead, I will be covering another error that is thrown and trapped on the back end:
“MODIFY FILE failed. Size is greater than MAXSIZE.”
Your database add-on space is capped depending on the type of database you ordered and how much extra disk space you purchased. You can view the maximum size of your database using the tools in the DiscountASP.NET Control Panel by clicking on the MS SQL Manager link under the Database Management section in the menu to your left:
Your transaction log disk space is also capped at 1000 MB (1 GB). Below are instructions on how to create and fix the problem.
How You Can Create the Problem
As in my last tutorial, I will be using the AdventureWorks database in this example. First, I’ll attach both the database and log file to my local SQL Server instance.
Next, right click on the database and select Properties. Go to the Files section and notice the initial size.
Go ahead and change these values to 500 and 1500, respectively, and click on OK.
Backup the database, upload it and try to restore it using the tools in the DiscountASP.NET Control Panel. A base SQL Server 2005 database is 300 MB and the transaction log size is 1000 MB, so it will fail when you try to perform the restore and throw the error mentioned earlier.
Now, if you had only set the primary data file (.mdf) to 500 and left the transaction log (.ldf) with a value under 1000 MB and tried restoring to a higher version such as SQL Server 2012, it will work because the newer versions have a higher base value. This problem will also create itself naturally as your database grows and fills up with data, or if you issue too many SQL commands in an instance, causing the transaction log to fill up too quickly.
The solution is fairly simple. You can try recovering unused database space by shrinking it. Right click on your local database instance and select Tasks -> Shrink -> Database. You can also shrink your database by opening a New Query window in SQL Server Management Studio and executing this SQL Statement:
DBCC SHRINKDATABASE (N’DatabaseName’, TRUNCATEONLY)
DBCC SHRINKDATABASE (N’AdventureWorks’, TRUNCATEONLY)
You can check the new values in the Initial Size (MB) column by right clicking on the database, selecting Properties and then Files. Make sure the Initial Size (MB) of the primary data file is less than the value found in the DiscountASP.NET Control Panel and that the Initial Size (MB) of the transaction log file is less than 1000 MB (1 GB). If the Initial Size (MB) of the primary data file is greater after you shrink it, then that means you just need to order more SQL Server disk space.