This article is meant to discuss a few differences between using a single application pool and using multiple application pools in IIS. If you are looking for a more hands on approach for setting up your environment, you might want to take advantage of our paid consulting services
http://www.kentico.com/Support/Consulting/Overview, which can tailor a solution for your individual environment.
When using multiple application pools, you can dedicate an application pool to a single site. This will usually keep any problems isolated to one site, instead of spreading the issue across all sites located on the same machine. You can also use different ASP.NET versions on the same machine when using multiple application pools. This is because you can assign a different application pool for each version of ASP.NET. When using multiple application pools, you can use different Windows accounts on each application pool. This can not only enhance security, but it can also help when trying to track down performance issues.
Pros:
• Your sites will be isolated from each other. So if the application pool locks or has an error, it will only affect the single site.
• You can run different sites under different .NET versions.
• You can have unique settings for individual application pools.
• You can setup unique security features for each application pool.
Cons:
• Each application pool uses its own memory, which can use up a lot of resources on a single machine.
• It may also be harder to debug the site, since you are running multiple sites in one application pool.
While there are more Pros/Cons for each scenario, this should give you a general overview.
-eh-
Firefox shows page fault problems often instead of loading Kentico CMS pages.
Applies to: Kentico CMS 2.x, 3.x
This is a common problem in Firefox when you use many tabs in Firefox, it swaps excessively to the disk and instead of loading tabs properly it shows page faults. You can avoid this problem using lower quantity of tabs or another browser only for developing purposes.
You can find list of supported browsers on our pages (
www.kentico.com/Download/System-Requirements.aspx).
To change customtable.oldname to customtable.newname:
First, rename the table using SQL Server Management Studio from “customtable_oldname” to “customtable_newname”.
Then, edit the custom table from
Site Manager -> Development -> Custom Tables and change the display name and the second part of the code name to newname.
Next, run the following SQL statement against your Kentico database:
UPDATE [CMS_Class]
SET [ClassTableName] = 'customtable_newname'
WHERE [ClassTableName] = 'customtable_oldname'
GO
Finally, edit the table from the Site Manager again and switch to the Queries tab. Update all of the queries to refer to the new table name.
-ag-
Of course it is! You can refresh views easily via Kentico UI:
CMS Site Manager -> Development -> System Tables -> Views Tab -> Refresh All Views button
If you want to use another version of the jQuery library other than the default library used by the design mode in Kentico CMS, you would have to link it only on the live site, where the default jQuery library is not linked. You can achieve this by a simple context macro:
Visible property of a web part: { % PortalContext.ViewMode == "LiveSite" % }
Any text (e.g. head section of a master page):
{ % if (PortalContext.ViewMode=="LiveSite") { return "<script src='jQuery.js' type='text/javascript'>"; } % }
Some Kentico web parts will stop working if you use the standard jQuery linking in your custom web parts because they are using jQuery in some of their libraries. That’s why you need to use the jQuery noConflict version. Please check this link for more information:
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
-bp-
You may need a domain alias redirecting to the main site domain but keeping the domain with relative paths in the URL, for example: domainAlias.com/<any path> will display the content of siteDomainName.com/<the same path>. If so, you can set up the domain alias in Site manager -> Sites -> edit -> Domain aliases -> Redirect URL like: http://domainAlias.com{%relativepath%}.
This approach works since version 5.5 with the 5.5.14 hotfix.
-hg-
If you need to redirect the visitors to another site, for example, if the site is under construction, simply place the following line into the method “public void Application_BeginRequest(object sender, EventArgs e)” in the file ~\App_Code\Global.asax.cs:
Response.Redirect("http://www.domain.com/"); //insert this line to redirect, you need to change the URL string
It is usually enough to restart the application. Since you are unable to reach the Site Manager with this error, you can do that an alternative way: by making a small change in your
web.config file (it can be a 1 character space somewhere). Afterwards, your site will be restarted and should be up and running.
Please see the following detailed error message to check if this article applies to you:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Thread was being aborted.
Source Error:
Line 62: <providers>
Line 63: <clear />
Line 64: <add name="CMSRoleProvider" type="CMS.MembershipProvider.CMSRoleProvider" connectionStringName="CMSConnectionString" applicationName="SampleApplication" writeExceptionsToEventLog="false" />
Line 65: </providers>
Line 66: </roleManager>
-ov-
When you encounter a similar issue, the following action may help solve the problem:
Call:
aspnet_regiis.exe /iru
through the command prompt. You can find it in the folder:
* %windir%\Microsoft.NET\Framework\v4.0.30319
* %windir%\Microsoft.NET\Framework64\v4.0.30319 (64-bit machine)
Additional info can be found under the links below:
IIS.NET blogs
DevOneNode
-rm-
When you’ve installed Windows 7 and all the appropriate IIS features, WCF (formerly known as ADO.NET Data Services) will still not be available on your box by default.
You can enable it if you open up the command prompt in the Administrator mode and run the following command:
c:\>"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
This will map the svc file type to aspnet_isapi.dll and make IIS recognize WCF services and startup the ServiceHost for you. In other words: the svc MIME type will be registered with IIS. The parameter on the end is:
-r: Re-registers this version of WCF and updates scriptmaps at the IIS metabase root and for all scriptmaps under the root. Existing scriptmaps are upgraded to this version regardless of the original versions.
And just to be sure: restart the IIS after you’ve run this command.
You can find more information here:
Configure WCF to run on Windows 7
WCF services may be used with Kentico CMS for example like:
Data communication - ADO.NET Data Services
-hg-
If your images aren’t displayed correctly with the default extensions (e.g. .jpg, .gif, .png, etc.), but everything is working fine when you remove the extension or change it to .aspx, add the following code to your web.config file under the <system.webSerer> section:
<httpErrors existingResponse="PassThrough" />
<modules runAllManagedModulesForAllRequests="true">
-md-
You can use a context macro for this purpose. I can look like this:
{%cmscontext.currentdocumentparent.YourField%}
Furthermore, should you want to use it within any transformation, you will need to call it with Macro Resolver:
<%# CMS.CMSHelper.CMSContext.CurrentResolver.ResolveMacros("{%cmscontext.currentdocumentparent.YourField%}") %>
Links to other resources:
Macro expressions
-ov-
If you are using the document type field of BBcode editor type you may see that the BBcode tags are not resolved if you use simply the Eval function (<%# Eval("field_name") %>).
You can use the ResolveDiscussionMacros function like here in this case:
<%# CMSContext.ResolveDiscussionMacros(Eval("field_name").ToString()) %>
Please make sure you have the Data Visualization Charting component installed (please use the correct .NET version):
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14422
Additionally, please check the
<httpHandlers> section in the web.config file if it contains a similar entry to the one below:
<add path="ChartImg.axd" verb="*" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
-bp-
Unfortunately, .NET supports only one form on the page and there is already one generated by Kentico CMS, but you can eventually put your custom HTML code for form into iframe placed on the page. You may also consider using
BizForms module.
If you are using WebDAV, you will likely get this error in the server log:
HTTP Error 500.21 - Internal Server Error
Handler "WebDAV" has a bad module "WebDAVModule" in its module list.
The WebDAV module will block both the DELETE and PUT (update) verbs for IIS.
You can either uninstall WebDAV or simply remove it from the Handlers of the site. One way to remove it is to add the following
remove lines to your site's web.config:
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
More details can be found here:
http://forums.iis.net/t/1166025.aspx
-zc-
Please make sure Time Zones are enabled in the
Site manager -> Settings -> System -> Enable time zones.
You will need to enable them even for API code usage, as all methods contain a condition (
TimeZonesEnabled()) that skips any datetime conversion logic if the time zones are not enabled (for the site or globally).
Also please make sure your Server time zone is correctly set.
-zc-
Unfortunately, this is caused by .NET framework. It restarts the application automatically, after a specified number of compilations is reached, e.g. if you edited some code files, etc. This value can be set in web.config file (by default it is 100):
<compilation debug="false" numRecompilesBeforeAppRestart="100">
The score is counted automatically when a contact makes an activity or meets a rule. Re-calculating is needed
only if you change the rules. In this case you can recalculate the score manually in CMS Desk -> On-line marketing -> Scoring -> edit -> Recalculate. The scheduled task is helpful only if editors often change the rules and could forget to recalculate the score.
Please be aware that the scheduled task throws away the current score and counts the new values on the fly, so you can see temporary results there while the task is processed. Also all the
Limit notification e-mails are sent again if the scheduled task is executed.
See also:
Managing scores
-hg-
In some special cases, you may encounter an issue where the Chrome browser crashes, displaying its error screen (error from Chrome debug is below):
Uncaught Error: Unhandled Error in Silverlight Application
Code: 2104
Category: InitializeError
Message: 2104 An error has occurred.
This issue is caused by the Silverlight components.
1. It seems that, Chrome is unable to handle when a Silverlight request is interrupted or stopped. Other browsers, like FireFox or IE, show a warning message that the Silverlight plugin crashed, but don’t crash themselves.
It usually helps to simply refresh the page as it happens mostly on page load, however it can also happen after you have filled in a form, and in this case, the data will be lost.
2. It can also help to upgrade Silverlight on your machine to, at least, version 5. Silverlight added support for Chrome there, refer:
http://forums.silverlight.net/t/24044.aspx.
-jo-
First, check that our responses, including the confirmation email that is sent shortly after you submit a request, are not ending up in your spam filter. If you are submitting your request through Site Manager -> Support -> Submit Support Issue, you also need to confirm that you have configured an SMTP server (Site Manager -> Settings -> System -> E-mails) and that outgoing messages are not getting stuck in the email queue (Site Manager -> Administration -> Email Queue). If you receive no automated confirmation email within an hour or no response within one business day, please call the support line to check on the status of your request.
-ag-
Currently, you cannot delete license keys directly, but you can archive them instead. There is a
Archive button in the
Actions column, which can be used for this purpose. When a license key is archived, is not shown in the list anymore. However, you can still display them if you want, using the
Show archived keys checkbox. Furthermore, you can always
Unarchive it, which is the advantage of archiving when compared to deleting.
Particular options can be seen here:
-rm-
Yes, it is possible. You can download the hotfix package here:
http://devnet.kentico.com/Bugtracker/Hotfixes.aspx. It is a self-extracting package. You can extract it and open the instructions. Please follow the chapter: “Creating File Structure for Deployment” to create the necessary files for your project. Backup your project folder and database, make your site offline and copy the new files into your project folder. Then apply the SQL script from the <hotfix folder>/SQL on your database and make your site online. In this way you can see which files the hotfix re-writes and you can see the exact error messages.
-hg-
This error occurs when your resource files in folder '<web project>\CMSResources' are broken. To solve the issue, please try to replace these files with original files from the KenticoCMS installation directory, often located in Program Files.
All avatars are converted to JPG format in the 4.0 version so that they lose the moving animation. In 4.1 version you will be able to use animated GIFs without problems.
You can configure multiple
Friendly URL extensions in
Site manager -> Settings -> URLs and SEO. However, you cannot use the same approach for files (
Files friendly URL extension). You can notice the singular form of a word “extension” – Kentico CMS is not designed for using multiple
files extensions.
-hg-
Yes, it is supported in Kentico CMS 5.5R2. You can develop your custom Silverlight 4 application with no problem.
Links to related articles:
Data communication in Silverlight 2.0
Kentico CMS supports Silverlight 2.0
-ov-
If you need to have links from your old site redirected to your new site like from the following page
http://www.yourdomain.com/horoscope to the new one
http://www.yourdomain.com/Divination/Horoscopes.aspx
There are two ways how to achieve this:
1. You can set any redirection in App_Code/Global.asax
2. You can create blank page which will redirect to existing page. This is recommended way.
Since the version 4.0 you can use document aliases (
Multiple document aliases).
Regrettably, the Cross-page postbacks do not work with Kentico CMS. The issue is caused by .NET and arises when used both of UrlRewrite and Cross-page postbacks.
Workaround: You can use the MultiView .NET control which can be used for the wizard-like behavior.
-hg-
In the Kentico CMS you can specify which page would be displayed as default very easily. All you need to do is find out an alias path of the particular page (please, see the ‘CMS Desk-> Content-> <page>-> Edit-> Properties-> General-> Alias path’) and specify it as the ‘Site manager-> Settings-> Web Site-> Default Alias Path’. Please note, when using the ‘global’ site level for setting the default page you might need to check if the inheritance isn’t broken down to the particular web site.
You can change it in CMS Desk -> Content -> Edit -> <your document> -> Form tab.
Go to the document Properties teb -> General -> Document URL path and change the value to be for example: /home/
You may study the Seach Engine Optimization (SEO) Starter Guide. It's a great resource, especially if you're new to SEO.
You can download it at
http://googlewebmastercentral.blogspot.com/2008/11/googles-seo-starter-guide.html.
-pp-
Could you please try to reset a NIC card on the server? It could help to solve the issue.
-hg-
This exception is thrown because incoming request is greater than allowed maximum request length. By default Kentico CMS 4.0 allows to receive requests that are not greater than 10 MB. This value can be increased by specifying
maxRequestLength parameter of
<httpRuntime> section of the configuration file (web.config).
1. Open the
web.config file in some editor.
2. Add the
httpRuntime element in the system.web section as follows:
<httpRuntime executionTimeout="90" maxRequestLength="10000"/>
More detailed information about mentioned parameters can be found in
Microsoft documentation.
Unfortunately, this is bug in upgrade procedure. We are very sorry for this inconvenience. To fix this issue please open ~\App_Themes\Default\CMSDesk.css file and change url of background image in .GraphBar class to:
background-image: url(Images/CMSModules/WebAnalytics/weekgraph.gif);
and url of background image in .GraphBarSelectedBox .GraphBar class to:
background-image: url(Images/CMSModules/WebAnalytics/weekgraphselected.gif);
If you encounter error message with following marked text (important is the marked text, not marked part can be different):
CS0012: The type 'CMS.Ecommerce.ShoppingCartInfo' is defined in an assembly that is not referenced. You must add a reference to assembly 'CMS.Ecommerce, Version=3.0.2953.32669, Culture=neutral, PublicKeyToken=834b12a258f213f9'.
and the source of this error is located in c:\WINDOWS\microsoft.net\Framework\v2.0.50727\Temporary ASP.NET Files\ it is probably (in 90%) needed to clear the .Net cache in location mentioned above.
Please note: It might take a while to delete all files since there are a lot of them.
You can place
robots.txt file under the root of your site. This file may contain information what pages should not be indexed. You can find more information about robots.txt file for example on this site:
www.robotstxt.org/robotstxt.html
This could be possible to ensure in your IIS. Could you please go to IIS -> Default web site -> Properties -> Home Directory -> Local Path and change it from (by default) "c:\inetpub\wwwroot" to "c:\inetpub\wwwroot\<your virtual directory name>". Then you site should be available only via domain name, without virtual directory name in it.
If you are not able to log in with different browsers, it could be a cookie issue. Can you see whether there are the correct cookies in IE?
If there are no cookies and they are enabled, please check your domain name. If it contains an underscore, IE is not able to create the cookie. Please use a different domain name without the underscore to make it work.
-hg-
The hint is 1. not to save the field definition or 2. fix it in the database (
CMS_AlternativeForm table - remove FieldType from
FormDefinition). Please restart the application in
Site manager -> Administration -> System if you made some changes to the database. We will fix it in the version 6.0.
-hg-
You can add following key into "/configuration/appSettings" section in web.config file:
<add key="CMSForbiddenURLValues" value="\\/:*?\"<>|&%.'#[]+ =„“" />
it contains all characters forbidden by default so you can just remove characters you want not to be forbidden. E.g. if you want to set "+" character not to be forbidden you can change key to:
<add key="CMSForbiddenURLValues" value="\\/:*?\"<>|&%.'#[] =„“" />
Basically, you can follow the
Print page article from Dev.Guide. Regrettably, there is no method that returns whole content of page, but you can get content from all editable regions by calling GetEditableValue method manually for every editable region on the page:
<%# GetEditableValue("IdOfEditableRegion") %>
-md-
This issue may be caused by using some plug-in in the Visual Studio. You can try running the Visual Studio with
/SafeMode parameter to see if any of installed plug-ins causes the problem. You can also open the project as an existing web site. More details about running the Visual Studio in the Safe Mode can be found on
Microsoft web site.
You can add HTML file with following name into root of project folder: app_offline.htm
All requests will be automatically redirected to this file then (it's general .NET functionality). You can optionally add some 'site under maintenance' text/image into this file.
This exception is thrown because incoming request is greater than allowed maximum request length. By default ASP.NET http runtime allows to receive requests that are not greater than 4 MB. This value can be increased by specifying maxRequestLength parameter of <httpRuntime> section of the configuration file (web.config).
1. Open the
Web.config file in VS or Notepad.
2. Find the
httpRuntime element in the system.web section as follows:
Example:
<httpRuntime
executionTimeout="90"
maxRequestLength="10000"/> (increase the marked number of bytes)
More detail information about mentioned parameters can be found in
Microsoft documentation or in this
blog post as well.
Yes, basically it is just a matter of appropriate stylesheet and page layout, defined for mobile devices, as per W3C mobile devices specifications. You can find plenty of examples of how to implement such web site using stylesheets on the internet:
Creating a Mobile-Friendly Site using only Stylesheets
W3C: Building the Mobile Web
Preparing Your Website For Mobile Devices
As for a detection of an access from a mobile device, there is a .NET Framework class for this purpose:
HttpContext. In particular,
HttpContext.Current.Request.Browser will give you a
HttpBrowserCapabilities object, which has a property
IsMobileDevice. By the boolean value of this property you can determine it.
It’s probably because you use some feature which is out of the range of your license edition you use. Please check
feature matrix. You can see which module is being used on your site and it is not listed for your license edition. Also, if you go to event log:
'Site Manager -> Administration -> Event log' you will find more details about it. You could try to search for event with type 'I' and 'LicenseLimit -' prefix in 'Source' field. Than you can perform appropriate fix steps based on the character of the issue.
If you want to apply some setting for a specific site, please do not forget to select this web site from the upper left drop down list. Not all settings are inherited by default, so you have to set them for the appropriate site.
You can solve this issue by allowing HTTP requests to the ~\CMSPages\webfarmupdate.aspx(.cs) page. (It is possible to configure exceptions to the SSL only policy in IIS)
Whether you use our Virtual Lab site you might encounter error message similar to following one:
Server Error in '/Web12345' Application.
Exception of type 'System.OutOfMemoryException' was thrown.
Please try to wait until the server is being restarted. This is only a temporary issue. Since there is huge amount of sites running at the same time.Regrettably, our resources are limited this issue can happen time to time.
Kentico CMS supports Microsoft SQL server only. It might be possible to implement data provider for MySQL or Oracle, but it will be necessary to analyze all queries and eventually change their syntax as every system uses slightly different syntax. It might be also necessary to purchase version with source code to implement data providers.
For example:
Id = plcRoot_Layout_zoneMainLayout_pageplaceholder1_partPlaceholder_Layout_zoneMainContent
_pageplaceholder_partPlaceholder_Layout_zonePageContent_pageplaceholder_partPlaceholder
_Layout_zoneContent_SearchOptions_ctl00_SearchCriteria_CommonOptions_MyField
The long names are product of ASP.NET. It involves all parents IDs to ensure the unique names of controls. We would not recommend changing of it.
If you would really need it these articles could help you:
www.west-wind.com/WebLog/posts/4605.aspx
michaelcodes.net/post/ASPNET-WebControl-ClientID-Bloat.aspx
This problem may be caused the the server cannot see it self - you should be able to browse your site with/without "www" directly on the server (e.g. Remote Desktop).
Second option is that in the Site Domain name setting in Site Manager -> Sites is set different domain. Note that the domain name from mentioned field is used for scheduler, so this domain should be accessible.
Could you please set the default page of your web site through the Site manager-> Settings-> <selectYourWebSiteFromTopLeftDropDownList>-> Web Site-> Default Alias Path and set the path e.g. to "/home". You could look for the alias path of the particular page in the CMS Desk-> Content-> <page>-> Edit-> Properties-> General-> Alias path. Please note there is no need to set up this information in the IIS.
Second option is that the documents have set different culture than the default content culture. You can check this setting on the Properties tab of each document and for the site you can check it in Site Manager -> Sites -> edit your site -> Default content culture.
Another possible setting is in Site manager-> Settings-> <selectYourWebSiteFromTopLeftDropDownList>-> Web Site-> Combine With Default Culture. It should be checked if you are using multilingual site.
Basically you can find e.g. _CS, _AS or _CI strings in collation name.
These strings refer to CaseSensitivity(CI specifies case-insensitive, CS specifies case-sensitive.) and AccentSensitivity(AI specifies accent-insensitive, AS specifies accent-sensitive).
For example if your server uses following collation name: SQL_Latin1_General_CP1_CI_AS, it means that it is case-insensitive and accent-sensitive (ideal case).
It could be found in MS SQL management studio when you right-click your SQL Server and choose Properties in section ‘General -> Server collation’.
It could be caused by the caching on the server - the information isn’t stored in DB at the moment. It should help to restart the application so all cache content will be loaded again.
Text: There are two ways which could provide more details about error:
1. A "Debug=true" directive at the top of the file that generated the error. For example:
<%@ Page Language="C#" Debug="true" %>
2. The following section in the configuration file of your application:
<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
Web gardens are not supported by Kentico CMS. Also, our tests show that web gardens do not provide any significant performance gain. Also, using multiple application pools doesn't make any sense.
If you need to scale your application for large traffic, you need to add more web servers in a web farm. Web farms are fully supported in the Enterprise Edition that supports synchronization of memory between web servers.
This post shows you how to solve an issue associated with the following error messages:
An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Invalid token 'void' in class, struct, or interface member declaration these are the offending lines of autogenerated code.
If you are using LINQ and received the mentioned error please try the solution described at the following site:
forums.asp.net/t/1222718.aspx
After applying the option “Save all virtual objects to disk” part of texts on pages were incorrectly encoded (wrong characters displayed in places of national characters).
The templates are saved to disk in UTF8 encoding, but without the signature. Try to save the incorrectly interpreted templates with the UTF8 signature in another editing tool (using Save as...).
This answer describes a possible solution if all the images do not appear and besides the home page, all the other pages are giving a page not found error.
This issue may be caused by "Check that file exists" setting in IIS is set to 'true' while it should be set to false. You can find this setting in your IIS -> right click on your web site -> Properties -> Home Directory tab -> Coinfiguration button -> find ASPX extension -> Edit -> deselect box Check that file exists.
Please note: This is rather workaround then natively supported functionality.
Let’s say you want to create a page called 'submit' (without extension). You can create a folder called 'submit' in the root of project. Into this folder please put default.aspx page and into this page put the code that will redirect the visitor to e.g. http://www.mysite.com/jobsubmit.aspx
This error message is probably caused by general issue caused by the google bot. Please try suggestions at
http://forums.asp.net/t/934913.aspx
Could you please check the IIS settings? We had a similar problem in the past caused by the wrong setting of the application pool (IIS 6 and higher). For more information please see
http://www.developer.com/net/asp/article.php/2245511.