DotNetNuke Hosting with ASPHostPortal.com

BLOG about DotNetNuke CMS, latest technology and Special DotNetNuke Hosting Package with ASPHostPortal.com

DotNetNuke - ASPHostPortal.com :: Tips To Make DotNetNuke Sites Run So Fast

clock April 28, 2016 20:08 by author Armend

Overview

First of all I want to start out by saying that a lot of the information that is displayed here can be found in previous blog postings.  Posts such as DotNetNuke Host Settings Explained, DotNetNuke Scheduler Explained, DotNetNuke Performance Settings Explained, and Simple DotNetNuke Performance Enhancements.  Are good starting points for some of the detail behind my recommended changes.

 

The following changes are simply the configurations that I have found to be the best "baseline" configurations.  Consideration is needed in regards to the site setup, update frequency, traffic, hosting environment and users to ensure that you have the proper setup for your specific environment.  I will discuss the settings section by section, simply noting the changes that are made.  Please reference the specific "Detail" document for more information.

DISCLAIMER: Follow these recommendations as a guide only, I am not responsible for any effects of implementing these changes.

Host -> Host Settings Changes

The first place I visit is the Host Settings page.  There are a number of key updates and changes needed in this section.  Again, only changes are noted here.

Appearance

In this section I unchecked the "Show Copyright Credits" box

Advanced -> Authentication Settings

In this section I unchecked "Enabled" for any provider that will not be used in the portal, typically the LiveId and OpenId providers

Advanced -> Performance Settings

In this section I change the "Module Caching Method" to Memory.  the "Performance Setting" to HeavyCaching.  And the "Compression Setting" to GZip Compression.

Advanced -> Other Settings

In this section I change the "Scheduler Mode" to Timer.  I enable the "Event Log Buffer" and I disable the "Auto-Sync File System" option
These are the most common Host Settings changes that I complete.  Depending on the site I'll make a few other small edits.

Host -> Scheduler Changes

The biggest change that I make here is to change the "SearchEngineScheduler" task to run typically once every 12/24 hours.  This reduces a big load on the server.

Other Changes

From a DotNetNuke configuration change that is all that I modify.  Overall those changes typically result in very noticeableperformance improvements, but many times it just isn't enough to keep the sites running as smooth as possible.  So depending on the situation I have a number of other items that I work with.

Regular Purging of Event Log

As most people that have used DotNetNuke have discovered the EventLog table can become a very troublesome hindrance on the performance side of a site.  Enabling the Event Log Buffer helps reduce the effects of a large EventLog, however, the best policy is to clean the EventLog on a regular basis.
I do this one of two ways.  On my own sites I have an SSIS package within SQL Server that truncates the table every 24 hours.  On client sites I utilize my Scheduled SQL Jobs module to keep a 7 day rolling history of the EventLog data.  The key here is that we MUST keep the event log small.

Skin Selection and Menu Provider

The next item of consideration is a multi-part consideration.  I focus on finding CSS based skin layouts that utilize third party menu components such as Telerik and Css NavMenu.  With a simple skin change to sites I have noticed page load times that have reduced by over 50%.
Finding a good designer that creates well laid-out skins with third party menu providers has been a key performance enhancement, at least in the page.  I have NOT benchmarked these numbers though since DNN 4.6.2, so the core menu provider might have better performance.

Compression/Caching Modules

As a last step, if I really need to get the most performance out of a site I will tend to lean towards Snapsis PageBlaster as a good option.  I currently use PageBlaster on this site only and have had very good luck with it, although when configuring the module you must be careful to test all functionality first.  This was another change that once implemented I noticed very visible performance improvements.

Summary

There you have it, that is my secret trick to improving DotNetNuke site performance!  Many people charge a lot of money to make these simple performance tweaks and I just laid them all out on the table for you free of charge.



DotNetNuke - ASPHostPortal.com :: How To Enable Google Analytics on a DotNetNuke Website?

clock Maart 31, 2016 21:25 by author Armend

Google Analytics is one of those must-have tools when running a website.  The tasks of tracking traffic sources, browser versions, search terms, etc. are all made easy.  The developers of DotNetNuke have also made using Google Analytics on a DotNetNuke website simple.

Installing Google Analytics in DotNetNuke is a fairly common request from many individuals and I know it can be a quite troubling question for most. The primary questions are how and where can I put the javascript code provided by Google. Well you have a few options. First you could put the code directly in the skin for the site, the advantages to that would be that you will automatically have the code on all pages, however, the disadvantage is that you cannot use that skin as is on another portal due to the site specific Google information. I personally go the route of adding a text/html module to my site and set it to show on every page and insert the script in a very specific location which I will discuss below. There are a few drawbacks to this method. First you will not get any statistics information on traffic to “edit pages” where other modules are not displayed and you also will not receive information regarding administration modules. However, in most circumstances this shouldn’t be an issue.
The best way to include this information is to include the information in the Module header of the text/html module. This is to prevent the accidental removal of the script code

if you happen to click inside the module as an admin to enter in-line edit mode. Below I will walk you through the steps needed to implement Google Analytics using this method. (NOTE: you can extend this for other javascript integrations if needed).

Step By Step

  • Add a new Text/HTML module to a page of your site, you can position it anywhere, but I recommend the bottom of the page as administrative users will still see the module when they are logged in
  • Edit the text of the module to contain no text
  • Enter the module settings from the SolPart Action Menu
  • Expand the “Advanced Settings” section
  • Check the box next to “Display Module On All Pages?”
  • Insert your Javascript code in the “Header” box. This will ensure that the data is always retained
  • Now under “Page Settings” -> “Basic Settings” un-check the following boxes
  • Display Container
  • Allow Print
  • Allow Syndicate
  • Ensure that the “Cache Time” is set to 0 (Caching appeared to cause issues with this implementation in my testing)
  • Click “Update” to save your changes

This should complete the setup. You may now test to ensure everything is functioning correctly. You can log out as an administrator and view your site and no extra content should be displayed however if you look at the generated source you should see your javacript listed. Google Analytics should update within about 15 minutes to show that they are receiving your data.

 



DotNetNuke Hosting - ASPHostPortal.com : How To Enable Google Analytics on a DotNetNuke Website?

clock Oktober 22, 2015 21:25 by author Kenny

How To Enable Google Analytics on a DotNetNuke Website?

Google Analytics is one of those must-have tools when running a website.  The tasks of tracking traffic sources, browser versions, search terms, etc. are all made easy.  The developers of DotNetNuke have also made using Google Analytics on a DotNetNuke website simple.

Installing Google Analytics in DotNetNuke is a fairly common request from many individuals and I know it can be a quite troubling question for most. The primary questions are how and where can I put the javascript code provided by Google. Well you have a few options. First you could put the code directly in the skin for the site, the advantages to that would be that you will automatically have the code on all pages, however, the disadvantage is that you cannot use that skin as is on another portal due to the site specific Google information. I personally go the route of adding a text/html module to my site and set it to show on every page and insert the script in a very specific location which I will discuss below. There are a few drawbacks to this method. First you will not get any statistics information on traffic to "edit pages" where other modules are not displayed and you also will not receive information regarding administration modules. However, in most circumstances this shouldn't be an issue.

The best way to include this information is to include the information in the Module header of the text/html module. This is to prevent the accidental removal of the script code if you happen to click inside the module as an admin to enter in-line edit mode. Below I will walk you through the steps needed to implement Google Analytics using this method. (NOTE: you can extend this for other javascript integrations if needed).

Step By Step

  • Add a new Text/HTML module to a page of your site, you can position it anywhere, but I recommend the bottom of the page as administrative users will still see the module when they are logged in
  • Edit the text of the module to contain no text
  • Enter the module settings from the SolPart Action Menu
  • Expand the "Advanced Settings" section
  • Check the box next to "Display Module On All Pages?"
  • Insert your Javascript code in the "Header" box. This will ensure that the data is always retained
  • Now under "Page Settings" -> "Basic Settings" un-check the following boxes
    • Display Container
    • Allow Print
    • Allow Syndicate
  • Ensure that the "Cache Time" is set to 0 (Caching appeared to cause issues with this implementation in my testing)
  • Click "Update" to save your changes

This should complete the setup. You may now test to ensure everything is functioning correctly. You can log out as an administrator and view your site and no extra content should be displayed however if you look at the generated source you should see your javacript listed. Google Analytics should update within about 15 minutes to show that they are receiving your data.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com : How to Add JavaScript to DNN Page?

clock Oktober 15, 2015 09:51 by author Kenny

How to Add JavaScript to DNN Page?

What is JavaScript?

JavaScript is a programming language used to make web pages interactive. It runs on your visitor's computer and doesn't require constant downloads from your website. JavaScript is often used to create polls and quizzes. JavaScript support is built right into all the major web browsers, including Internet Explorer, Firefox and Safari. Provided that the visitors to your site are using web browsers that support JavaScript (most do) and have JavaScript enabled (it is by default), then your JavaScript will run when they visit the page. JavaScript is an interpreted language, so no special program is required to create usable code. Any plain text editor such as Notepad (one of the Accessories that comes in Windows) is quite satisfactory for being able to write JavaScript. That said, an editor that colorizes the code to make it easier to see what is what makes it easier to find your mistakes.

Step by Step

  1. Navigate to a DNN page where you want to place slideshow
  2. Click on “Edit Page” located at right side of Admin bar and choose “Edit this page”, this will turn page to Edit mode.
  3. Say (you have already setup images) on top of content page, then click Modules menu in Admin bar, then click on “Add new Module”.
  4. Choose HTML Editor Module from the list of modules and drag it below to slide show (location of module not mandatory, but a best practice)
  5. Select settings from “gear” action menu of newly added module and remove value from “Module Title” and uncheck Is Sharable (this will prevent share this content across site) under Advanced Settings then click on “Update”
  6. Select Edit content from “pencil” action menu of new module, this will opens a word like editor.
  7. Choose “Basic Text Box” located in left top corner, this will show plane textbox, type relevant JavaScript code here.
  8. Finally choose “Raw” as Render mode located at bottom of the editor and Click on “Save”. This will attach our Script code with page.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: What's New in DotNetNuke 7.4.2?

clock Oktober 8, 2015 12:19 by author Kenny

What is New in DotNetNuke 7.4.2?

The latest version of DotNetNuke is 7.4.2. This version has been released at October 6th 2015. This release is maintenance release, bug fixes and support for incremental updates.

SECURITY ISSUES

This release resolves the following two security issues:

  • 2015-06 (Low) Potential XSS issue when using tabs dialog
  • 2015-07 (Medium) Users are getting registered even though User Registration is set to None

What started out as a relatively small maintenance release has turned into one of their largest maintenance releases ever. They spent a lot of time working to resolve a number of password management and multi-language issues along with a few performance enhancements. In total, they ran well over 5000 manual and automated tests on this release with a 99% pass rate.

MAJOR HIGHLIGHTS

  • Added upgrade support from beta release
  • Fixed issue with lists in custom registration form
  • Fixed issue with ignore words in Italian and French
  • Fixed issue with site export in multi-language site
  • Fixed issue where parameters in return URL were malformed
  • Fixed issue in sitemap for multi-language site
  • Fixed issue where control panel did not render links correctly in SSL offload environments
  • Fixed issue where pages with future start date were inaccessible
  • Fixed multiple password reset issues
  • Fixed issue where site settings could be duplicated
  • Fixed issue where dismissing all notifications removed messages as well
  • Fixed issue where file link for missing file caused exception
  • Fixed issue where localized portal settings were not getting applied when switching languages
  • Fixed issue where admin was unable to change interface language
  • Fixed issue where page name uniqueness was applied cross language
  • Fixed multiple scheduler issues

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: How to Create a Backup of DNN and The Database

clock September 23, 2015 07:51 by author Kenny

How to Create a Backup of DNN and The Database

This topic is very important and requires a bit of planning, especially if you do not have direct access to your database server to perform your own backups. In the following sections I will first talk about what you must backup and why some of those items are very important. I will then discuss how to perform a DNN backup and SQL Server backup.  Finally I will discuss options available for third party modules for performing backups for individuals that do not have direct access to their servers.

What to Backup?

Simply put, it is a best practice to backup your entire DotNetNuke directory on the web server as well as a full backup of the database. Some people will say that you can get by with only backing up the "portals" folder, this is not correct! To successfully restore a DotNetNuke installation you must ensure that you have all module .dll and other code files you also must have the same validation and decryption keys.  I have found that the only real method to keep your data safe is to create a backup with all files.  Given the limited file size of the core DNN installation I have not found this to be a hinderance, especially since the additional files that exist in my website are all related to the content available within and is something I must have a backup.

Performing The Backup

Performing a backup of DotNetNuke is a fairly easy two step process. First I will discuss backing up the DNN installation directory, then I will discuss options available for backing up the database.

Backing up The DotNetNuke Directory

You have two options when backing up the DotNetNuke directory. If you have direct access to the server, you can simply right click on the DotNetNuke directory and select "Send To:" -> "Compressed (Zipped) Folder". This applies for most versions of the windows operating system. You will then have a file named dnn441.zip where dnn441 was your directory name. This zip file will contain all needed backup files, you will want to store this in a safe location.

If you do not have direct access to the server and can only access it via FTP you will have an additional step to obtain a zip file for your site. You will want to connect to your FTP site and COPY all files to a temporary location on your local computer. Once all files have been copied you will want to create a zip file including ALL files and folders that were just downloaded.

NOTE: if using a program such as WinZip for zipping, ensure that the "Use Folder Names" option is enabled so that the folder structure is preserved within your zip archive.

Backing up The DotNetNuke Database

To backup the database you must have access to the database server and the file system of the database server. If you are in a hosted environment you will need to rely on your hosting provider to obtain a backup, or you will need to look into a potential third party solution to backup the database from within DotNetNuke. If you have full access to the server please use one of the below sets of instructions to backup your database..

Backing up a Database with SQL Server and Enterprise Manager

Follow the below steps if you wish to create a databse backup file from Enterprise Manager for SQL Server using Enterprise Manager.

  • Navigate to your specific database in Enterprise Manager
  • Right click on the database and select "All Tasks" -> "Backup Database.."
  • Ensure that "Complete" is selected for the backup type
  • Click the "Add" button in the "Destination" section
  • In this section provide a full file path to the desired backup file, typically named databasename.bak where databasename is your database name
  • Click "Ok" to generate your backup, you will receive a success notice upon completion
  • You will now have a full backup file containing all tables and data for your database.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke 7.4.1 Hosting - ASPHostPortal.com :: How to Use the Text DotNetNuke Skin Object

clock Augustus 28, 2015 11:54 by author Kenny

How to Use the Text DotNetNuke Skin Object

DotNetNuke is a web content management system based on Microsoft .NET. The DNN Platform Edition is open source. DNN is designed for multi-tenancy and supports an unlimited number of websites, either as root websites or for portals in a parent-child configuration. The platform's skinning feature separates content from design-related files for easier customization. Skins make it simple to maintain a common look and structure across related sites without advanced programming knowledge. DNN's core functionality can be expanded with modules for common elements, such as those for e-commerce. The software enables parent-child website resource sharing and management using specially-formed symbolic links.

How to Use the Text DotNetNuke Skin Object

What is a Skin Object?

First of all, a skin object is an ASP.Net user control that is used in DNN skins to provide a limited feature.  For example, the search box, menu, login link, copyright statement, and more, are all skin objects.  They allow a skin designer to include dynamic content without having to know how to build the content itself, or knowing any programming.

Other than the previous description, this post will assume that you know how to create and package your own skin.

Text Skin Object

The Text skin object itself is a very useful feature in skinning, as it allows you to include localized text, while not having to create a copy of the skin for each language, or using any other number of workarounds.

For example, if you have static text next to your login skin object that says, “Welcome, “ then you might want to have alternatives for another language, if you plan to support it.

I am going to use that example for the rest of this post.

The Code

There is minimal code needed to implement the Text skin object.  If you’re using an HTML skin, then you would simply need to do the following:

<object id="dnnTEXT-Welcome" codetype="dotnetnuke/server" codebase="TEXT">
    <param name="Text" value="Welcome, " />
    <param name="CssClass" value="NormalBold" />
    <param name="ResourceKey" value="Welcome.Text" />
    <param name="ReplaceTokens" value="False" />
</object>

If you are using a ASCX skin, then you would need two updates.  First, put this line of code into the top section of the source:

<%@ Register TagPrefix="dnn" TagName="TEXT" Src="~/Admin/Skins/Text.ascx" %>

Next, put this code into the appropriate spot of the source in the skin:

<dnn:TEXT runat="server" id="dnnTEXT-Welcome" Text="Welcome, "
CssClass="NormalBold" ResourceKey="Welcome.Text" ReplaceTokens="False" />

Resource Files

Next, you need to make sure your skin has resource files.  In your skin package, you should have a folder namedApp_LocalResources.  This folder will contain the necessary files to tell your skin the appropriate text to use for the skin object when the specific language is asked for during page request life cycle.

If your skin file is named index.ascx or index.html, then your default resource file for English would be namedindex.ascx.resx.  If your additional supported language is French, your filename might be index.fr-FR.ascx.resx.

The English file code would be something like this:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="Welcome.Text">
    <value>Welcome, </value>
  </data>
</root>

The respective code for the French language file might look like this:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="Welcome.Text">
    <value>Accueil, </value>
  </data>
</root>

Text Skin Object Properties Explained

There are a few properties that you’ve seen in the previous examples that you might be wondering about.  Here is an explanation of those properties:

  • Runat – (required, ASCX only) The value must be ‘server’ 
  • Id – (required) This is a unique name for the tag, much like in standard HTML 
  • Text – (optional) This value will be used as the default, should an appropriate resources file for the current language not be found 
  • CssClass – (optional) This value is the name of a CSS class that will be available to the rendered HTML page to stylize the text in the web browser 
  • ResourceKey – (required) This value references the id (name) of the text to retrieve from the resources file 
  • ReplaceTokens – (optional) This true/false value will tell DNN to look for system tokens and replace them with the appropriate text


Free ASP.NET Hosting for DotNetNuke :: Solving jQuery Conflicts in DotNetNuke Modules

clock April 14, 2015 06:39 by author Dan

DotNetNuke will use jQuery help popup model along with picture rotating results. These are good plus a massive improvements with systems such as flash. On the other hand it's not difficult to find two separately coded jQuery modules that may cause conflicts when utilized on the same page while as each other.

The reason

The reason typically is actually which modules might be hard coded to use their version of jQuery. (Think of jQuery as a plugin that's needed for your code to insert onto the web page).

Your library which powers jQuery is often updated to include new capabilities. Sooner version of DotNetNuke do have no capacity to insert jQuery or even reference reference it as “part” of the core of DNN.

Consequently for almost any component published for early DNN types, this library plugin for jQuery would have to be bundled or referenced to an online source like the free Google jQuery reference.

If a pair of module are generally on the same site and calling various types of jQuery into play, it is likely which one of several modules will certainly discord and also neglect to perform appropriately. Often it's going to be the harder advanced or even later on built module  which fails.

DotNetNuke Solution

The treatment for this is to built one common core library into your core ofDotNetNuke, and let modules along with other code to reference this specific single source when calling on the jQuery library for every reason.

DotNetNuke have included jQuery as an option inside the host adjustments, to allow it become loaded from there.

They run a release version on the jQuery library that is certainly presumably kept up to date with releases of DotNetNuke. The past version involving DotNetNuke 5x show this.

Modules can easily either call up this library, or use their own library.

How Modules Use DNN version of jQuery or Their Own version

Well created code or perhaps modules in most cases have the setting that permits you to reference this HOST DNN version of jQuery, or call into play in the version that shipped with the module.

With our quests, we work with a tab placing that seems as if this:

If this “Load jQuery” can be ticked, the module uses the jQuery library that may be shipped with the module.

If the option is just not ticked, the module uses the DotNetNuke bundled version associated with jQuery.
Greatest Resolution

As soon as conflicts happen, the best way to resolve it's in order that both quests are referencing the same jQuery selection version. The quick way to get this done is in order that both modules are certainly not using their own version, or inside our case “Load JQuery” is just not CHECKED.

And, ensure that any some other modules are also not referencing their own version associated with jQuery but need to this hosted jQuery. (Talk towards the module developer on how to get this done. )

Other Possible Troubles

1. One of many modules may need a feature that may be more advanced compared to the the organised jQuery version. In that case, a afterwards jQuery library must be referenced. Allowing this to be done, DotNetNuke include allowed that you reference the URL regarding another version of jQuery.

One example is, in our Mushroom Image module regarding DotNetNuke, the rotating effect requires a later version of jQuery compared to the last version of DotNetNuke 5x recommendations. 1.4.4. To set a afterwards version, you just find a online resource this way Google organised jQuery selection:

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

And also enter that will URL into your HOST jQuery adjustments.



a couple of. Another issue is that there could be a conflict in the jQuery script employed to call this module behavior. We include included the ability to customize this script employed to reduce clash.

Naturally this is an selection for innovative users, and not all quests have that feature.

What's the Get hold of Message?

Each time a conflict occurs, there is generally no “developer” to blame, but alternatively an incompatibility involving the ways which the jQuery will be called. Don’t assume which the last element installed is to blame.

In most cases the conflicts can be resolved with all the steps outlined above. This assumes which the modules mounted have similar flexibility once we do inside our modules.

FREE ASP.NET Hosting for DotNetNuke Recommendation

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $0. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



About ASPHostPortal.com

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions

Author Link


 photo ahp banner aspnet-01_zps87l92lcl.png

Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in