Summer color error .asp id

summer color error .asp id

You use the ID to refer to the control in the page within your code. Every control must have a unique ID. NOTE. You should always assign an ID. Faq ID, The configuration required for BDAs can be confusing and error-prone for our The final chapter of the manual, Deploying CFML on ASP. Apple Petal Fall. Pest/Problem. Material. Rate/Acre. Comments. For thinning summer varieties. See Chemical Thinning of Apples, page nutrient level.

Summer color error .asp id - with you

Exploring sprers.eu Pages

Explore sprers.eu pages and dig into some of their core functions, such as page events and properties, and directives.

This chapter is from the book 

Alive!!! It&#;s alive!!The page is ALIVE!!!!!

I don&#;t want to sound like a nag or like I&#;m harping on the same issue over and over, but sprers.eu is really about events and objects. The sprers.eu page is no exception. It is an object in the eyes of sprers.eu just like anything else. It has properties and methods and can be interacted with, similar to the other objects you&#;ve seen so far, and the plethora of things to come as you move through the remainder of this book.

Because events are a big part of sprers.eu and also a huge part of the power of the sprers.eu page object, it&#;s important to look closely at these event and the order in which they occur so that you can utilize them to their fullest potential.

Understanding Page Events

Maybe this isn&#;t the best way to explain this. Maybe my mother wouldn&#;t be so proud of my openness. Maybe these examples will be too graphic for you, but it&#;s the best way I can describe it, so please bear with me.

Every morning of every workday I start my day the same way. I get up, drag my carcass into the living room, and turn on the television. I stare at overpaid morning show hosts like a dribbling fool, with about as much cerebral activity as an earthworm trying to figure out what to eat. After the first flicker of lights goes off in my cranium, I drag my carcass to the shower to defrost my brain.

In the shower I have a set routine so as not to miss any vital, proper hygienic functions and to ensure that the other people in my office and our clients don&#;t give me those strange looks anymore when I enter the room. I think if you took the time to analyze this portion of your life, you&#;d see that without conscious thought, you pick up the bar of soap and proceed to cleanse without ever putting a thought into what you are doing. You may be singing or thinking about the day you are about to face and before you know itBoom! You&#;re finished.

It&#;s a routine that I go through every morning almost without thought. And that&#;s a good thing; if I needed to be able to think before I could shower, I wouldn&#;t arrive at work until a.m., or until I&#;ve had several cups of joe. This practice is part of a subconscious, programmed routine that has been burned into my mind from years of habit.

When I then go to work, I respond to the world around me. I make decisions based on what stimulus comes my way. Maybe someone comes to the office for a meeting. They ask questions and I answer them. The phone rings and I pick it up. I get e-mail and I occasionally read it and less often answer it. I am affected by the world around me and what kind of input it gives me. I then go home and enjoy the solace (this isn&#;t a joke and I&#;m not kidding) of my family.

At the end of the day I get into my pajamas and go to sleep.

sprers.eu pages are a lot like this. They go through a routine every time they are called. These routines are the sprers.eu pages&#; events. They are like the steps I go through every morning to prepare for my day, or like showering by the same routine everyday.

sprers.eu pages have a routine of events that happen, and they happen in the same way, in the same order, every time. You&#;ve seen one of these events, , in some of the previous examples. Let&#;s look into these events and the others that a page goes through when it is executed.

The three main events, although there are others, are as follows:

Page_Init

The event is the first to occur when an sprers.eu page is executed. This is where you should perform any initialization steps that you need to set up or create instances of server controls. Server controls are discussed in later chapters, so just keep this event in mind.

You don&#;t want to try to access controls in this event because there is no guarantee that they have been created yet. It is during this event that they are created, and you can control whether your attempt to use these objects will be thwarted by the server processing your request before the object has been created.

The following is an example of the structure of how to use the event

Visual Basic .NET

Sub Page_Init() &#;Place your Page_Init code here End Sub

C#

void Page_Init(){ //Place your Page_Init code here }

Note that the event fires only the first time the page is loaded. When you use a web form and post back to this page again, the event doesn&#;t fire. But the event fires each time the page loads.

Page_Load

This is the page event where you will be doing most of your work. This event occurs only when all the objects on the page have been created and are available for use. You will see&#;within this book and in other examples available in the .NET Framework SDK and sprers.eu-related web sites&#;that the lion&#;s share of work on sprers.eu pages is done during this event. We&#;ve been using this event since the beginning of the book and will continue to use it in just about every example.

Although you&#;ve seen it a zillion times already in the book, for consistency&#;s sake I&#;ll show you the form here. It doesn&#;t look a whole lot different from the example, and for all intents and purposes the only thing that&#;s different is that the word is substituted with the word .

Visual Basic .NET

Sub Page_Load() &#;Place your Page_Load code here End Sub

C#

void Page_Load(){ //Place your Page_Load code here }

Page_Unload

is the counterpart to . Just as is an event that happens before anything else happens, happens after everything else happens. It is available for you to perform any operation you need to after you are completely finished with the page.

For instance, imagine that you temporarily needed to create a file on the server during the page&#;s processing. You wouldn&#;t want to leave it there for eternity, especially if the file was unique to each visitor of the web site. You could have loads and loads of files building on your server without any way to get rid of them. But if you were a good boy or girl, you could destroy the file during the page&#;s event and make the server administrator a happy camper.

Just to be fair and impartial, I don&#;t want to leave out showing you the structure of the event. Look familiar?

Visual Basic .NET

Sub Page_Unload() &#;Place your Page_Unload code here End Sub

C#

void Page_Unload(){ //Place your Page_Unload code here }

Getting back to my morning routine, it looks like this:

  1. . Roll carcass from bed to in front of the television.

  2. Take shower brainlessly, get dressed (make sure socks match and colors coordinate&#;check with wife for confirmation). Get into car and drive to the office.

  3. Handle the day in all its glory and all the blessings that come with it.

  4. . Get into jammies and go to sleep.

It&#;s that routine, and I behave just like the object does. When I run through these events, I am investigating and affecting all kinds of things. I&#;m finding out the condition of the world that morning by listening to news, changing the state of my brain to somewhat functional, changing the direction that my hair points from an erratic bird&#;s nest to some semblance of a hairdo, and more.

I&#;m doing this through checking and setting properties and executing methods, so to speak. During , I execute the method to change the property from true to false.

During I&#;m checking the value of the property and seeing what the value of the property is, which is generally grayer than the day before. I&#;m assuring that the property is set to zero by executing the method.

I then have the ability to respond to events and stimulus from the world around me throughout the day. Then during the event, I execute the method to set the property to true.

Can you see how these different events at different times have a direct affect on my condition? sprers.eu pages can be affected just like this with their different events. Now are you beginning to see more clearly how events and objects interact in sprers.eu and how this is a totally different paradigm from any traditional way of web programming in HTML or Active Server Pages.

As I said in the beginning of the chapter, sprers.eu is all about events and objects, and the sprers.eu page is no exception. You know that objects are made up of their properties and methods, and now you know that objects can also have events, as well.

The object has the three mentioned events, as well as others that execute without intervention from the designer, but other events also affect sprers.eu pages.

User-Initiated Events

Just as I am faced with input from the world around me after the event has finished, a page can also deal with events initiated by the web page&#;s visitor.

Let&#;s look at an example of some events, both self executing and user initiated. Below is a page that shows the date and asks you to pick what mood you&#;re in. In the code samples, you&#;ll also be shown another neat server control called a and a cool feature of the .NET Framework called Databinding. You will also see a property of the object called . We will discuss this later in this chapter, but again, don&#;t get hung up on these things&#; just concentrate on the events in the page.

Visual Basic .NET

<%@ page language="vb" runat="server"%> <script runat=server> Sub Page_Load() dim TodaysDate as Date TodaysDate = sprers.eutDateString sprers.eu = "<u><b>Today&#;s Date is " + TodaysDate + "</b></u>" If Not IsPostBack then dim MoodArray(3) as String MoodArray(0) = "Good Mood" MoodArray(1) = "Okay Mood" MoodArray(2) = "Bad Mood" MoodArray(3) = "Totally Melancholy " sprers.euurce = MoodArray sprers.eund() End If End Sub Sub CheckMood(sender As Object, e As sprers.eurgs) If sprers.euedIndex > -1 then sprers.eu = "The Mood that you selected is " +
sprers.eu Else sprers.eu = "What? You don&#;t feel anything?" End If End Sub </script> <html> <title>What&#;s Your Mood?</title> <body> <form id="MoodForm" runat="server"> <asp:label id="OurTitle" runat="server"/><br> <asp:RadioButtonList id="YourMood" runat="server"/> <asp:Button id="MoodButton" text="What&#;s Your Mood?" onClick="CheckMood"
runat="server"/> <br><br> <asp:label id="SelectedMood" runat="server"/><br> </form> </body> </html>

C#

<%@ page language="c#" runat="server"%> <script runat=server> void Page_Load(){ String TodaysDate; string[] MoodArray = new string[4]; TodaysDate = sprers.eutDateString(); sprers.eu = "<u><b>Today&#;s Date is " + TodaysDate + "</b></u>"; if (!IsPostBack){ MoodArray[0] = "Good Mood"; MoodArray[1] = "Okay Mood"; MoodArray[2] = "Bad Mood"; MoodArray[3] = "Totally Melancholy "; sprers.euurce = MoodArray; sprers.eund(); } } void CheckMood(object Source, sprers.eurgs s){ if (sprers.euedIndex > -1) { sprers.eu = "The Mood that you selected is " +
sprers.eu; }else{ sprers.eu = "What? You don&#;t feel anything?"; } } </script> <html> <title>What&#;s Your Mood?</title> <body> <form runat="server"> <asp:label id="OurTitle" runat="server"/><br> <asp:RadioButtonList id="YourMood" runat="server"/> <asp:Button id="MoodButton" text="What&#;s Your Mood?" onClick="CheckMood"
runat="server"/> <br><br> <asp:label id="SelectedMood" runat="server"/><br> </form> </body> </html>

If you look at Figure , you can see the results of the initial load of the page. The event fires, at which time the date is created. I then set the property of and I build an array that will make up the radio buttons.

If you look back at the code samples again, you can see that attached to the button is an event that calls a function called . I know that this looks pretty similar to a client-side JavaScript function call, but remember that sprers.eu is a server-side technology. If you look at the code delivered to the browser, you see that there is no event to be seen.

<input type="submit" name="MoodButton" value="What&#;s Your Mood?" id="MoodButton" />

Figure The event has built the page, but the event hasn&#;t had any effect because the button hasn&#;t been pressed yet.

sprers.eu knows whether you pressed this button&#;not by a typical client-side event, but by inspecting the form that is posted and seeing whether this button was pressed. The terminology is similar to client-side JavaScript, but the function and method is totally different.

Now it&#;s time to pick a mood and click the button. You can see in Figure that the mood is now displayed because the event that took place server-side executed the function called , which sets the text of the label.

Figure The event is fired by clicking the button.

To reinforce the point that sprers.eu is smart about calling functions and that what is executed is determined by the event of the button, I have put together a sample with two different buttons that call two different functions. Each button uses its own event.

Visual Basic .NET

<%@ page language="vb" EnableViewState="false" runat="server"%> <script runat=server> Sub CountDown(sender As Object, e As sprers.eurgs) dim i as Integer for i = CDbl(sprers.eu) to 1 Step -1 sprers.eu += "Countdown: " + sprers.eung() + "<br>" next End Sub Sub StringLength(sender As Object, e As sprers.eurgs) sprers.eu = "The length of this string is: " + sprers.eung End Sub </script> <html> <head> <title>What do you want?</title> </head> <body> <form runat="server"> Either enter a word to find its length or a number to count down from<br> <asp:TextBox id="Text1" runat="server"/> <asp:Button id="btnCountDown" text="Count Down" onClick="CountDown"
runat="server"/> <asp:Button id="btnLength" text="Get Length" onClick="StringLength"
runat="server"/> <br><br> <asp:label id="OurLabel" runat="server"/><br> </form> </body> </html>

C#

<%@ page language="cs" EnableViewState="false" runat="server"%> <script runat=server> void CountDown(object Source, sprers.eurgs s){ int i; for (i = sprers.eu16(sprers.eu);i >= 1;&#;i){ sprers.eu += "Countdown: " + sprers.eung() + "<br>"; } } void StringLength(object Source, sprers.eurgs s){ sprers.eu = "The length of this string is: " +
sprers.eung(); } </script> <html> <head> <title>What do you want?</title> </head> <body> <form runat="server"> Either enter a word to find its length or a number to count down from<br> <asp:TextBox id="Text1" runat="server"/> <asp:Button id="btnCountDown" text="Count Down" onClick="CountDown"
runat="server"/> <asp:Button id="btnLength" text="Get Length" onClick="StringLength"
runat="server"/> <br><br> <asp:label id="OurLabel" runat="server"/><br> </form> </body> </html>

If you look at Figure you can see that after the Count Down button was clicked, with the value of 10 in the text box, the function was executed and the code generated and displayed properly.

Figure Clicking the Count Down button causes the function to execute.

Now if you put a string such as "What is the length?" in the text box and click the Get Length button, you are executing the function.

NOTE

This example has a bit of hidden danger in that if someone enters a string in the text box and clicks the Count Down button, sprers.eu will cause an error. This is because it can&#;t convert a type to an in this circumstance. But you don&#;t need to worry about this in your real-world applications because sprers.eu provides some really, REALLY cool answers to validating input data (that we will be devoting an entire chapter to later). The validators would totally solve any issues like this&#;and more.

Figure Clicking the Get Length button causes the function to execute.

As if all the objects and events covered earlier weren&#;t enough, the concept of user-initiated events opens up a totally new way of thinking again about how you can handle and manipulate data, depending on how a user interacts with your web application.

Other events are also available that can help you manipulate data and objects, and I would encourage you again to go to the class browser located at the following link and look at what events you can use on each object:

sprers.eu

Now that we&#;ve touched on the different events, both default and user-initiated, let&#;s move on to looking at some of the key properties of the object.

Rules

Rules to Better Websites - Development - 42 Rules

  1. Use .NET MVC over sprers.eu Web Forms .

    Figure: Bad example - Using Web Forms

    Figure: Good example - Using MVC 5Read the Top 5 reasons why you should never use Web Forms again:

    1. Testability - MVC provides true separation of concerns, and makes it easy to test the whole application from Unit Tests to Coded UI Tests
    2. Instant Pages - Get your admin pages up and running faster than ever with improved scaffolding. Don't get bogged down doing Create, Edit, Update, Delete
    3. Better HTML Markup Control - Every layer of obstruction creates new problems down the track. When so much development now involves jQuery or other javascript libraries, MVC simplifies development by putting the developer back in charge of the HTML that is actually rendered
    4. Simpler Debugging - This means that instead of complicated Webform lifecycles, your code either goes into the Route, Controller or View, so you can jump right into coding without an intimate knowledge of the page lifecycle
    5. Mobile Support - With Adaptive Rendering, MVC allows the same User Interface to Render on Different Devices, so users can check it out on their PC, their Tablet or even their Smart Phone

    Or watch the video:

    Use .NET MVC over sprers.eu Web Forms .

    Figure: Bad example - Using Web Forms

    Figure: Good example - Using MVC 5 Read the Top 5 reasons why you should never use Web Forms again:

    Read more

  2. In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

    1. Check the rule in MS Word (or Grammarly) to see if it has spelling or grammar mistakes
    2. Run Link Auditor and Code Auditor on that page
    3. Check the report and fix the errors (if any)
      Repeat step 2 and 3 until Link Auditor and Code Auditor get all green ticks

    In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

    Read more

  3. The following structure allows you to keep your website clean of clutter:

    • /Images  - for all static images
    • /Images/Dynamic  - for all images used in dynamically generated pages  NOTE: the reason we use two images directories is so we can exclude images used by dynamically generated pages from our link checking program. This is so we can work out the TRUE orphan images (and believe me, like coat-hangers they multiply quickly )
    • /Includes  - for all include files
    • **/Bin ** - for mdb's, dll's and udl's
    • /Shop  - for the shopping basket and related pages
    • /Clients  - for the client login page and related pages
    • **/Reports ** - for any SQL Server Reporting Services
    • **/zsMaintenance ** - for the administration section to modify web site settings
    • /zsValidate  - for all web server status and validation checks

    The root directory should be clean, having only:

    • default (.aspx, .asp, .htm)
    • sprers.eu
    • **sprers.eu **

    The following structure allows you to keep your website clean of clutter:

    Read more

  4. Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if it's just to show the files inside it.

    It is usually a sprers.eu file, however depending on the webserver configuration; it might be sprers.eu or sprers.eu etc.

    Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if it's just to show the files inside it.

    Read more

  5. A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

    This makes your site very easy to maintain. If you ever want to change the entire look and feel you should only have to change one file.

    A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

    Read more

  6. It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake of missing a quotation could lead to undesired results on the web page.

    Figure: Bad code - Can you see the missing quote? Code Auditor can

    Figure: All OK

    As you can see from the above example, just missing a quotation makes the whole layout of the text different. So be very careful that you make sure you have closed all opening quotations of attributes with equivalent closing quotations.

    We have a program called SSW Code Auditor to check for this rule.

    It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake of missing a quotation could lead to undesired results on the web page.

    Read more

  7. Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

    The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

    The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

    Note:  <code> tags should not be used because they only provide the font Courier - you still have to manually indent all of your code as in the bad code display example below.

    Figure: Bad code display example - using <font>

    Figure: Bad code display example - using <code>

    Figure: Good code display example - using <pre>

    Tip:  Do not use auto-format (Ctrl-K, Ctrl-F) in Visual Studio when updating page with <pre> tags, or it will destroy all the code formatting. We have made a suggestion to Microsoft to fix this.

    Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

    The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

    The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

    Read more

  8. You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

    It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

    The following benefits of using heading tags:

    • Improves the ranking with the search engines (extra weighting is given to text in H1 and H2)
    • Makes cleaner and leaner HTML

    Figure: Bad example - Using span tags and CSS classes to insert headings to content

    Figure: Good example - Using heading tags

    You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

    It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

    The following benefits of using heading tags:

    Read more

  9. These are the things you should consider when creating an anchor link:

    1. Make it meaningful - When you define anchors names, use meaningful names. When you are sending the URL by email it helps indicate what you are talking about. Avoid list numbers, as they often change. An anchor like "#13" becomes incorrect when the order changes.
    2. It is case sensitive - Are and the same? The answer is "no" because they might be not case sensitive when they test in some browsers.
    3. No spacing - When you are defining an anchor name, make sure there are no spaces within the name

    bad Bad example: Spaces within anchor name

    good Good example: No spaces within anchor name

    1. Don't define names starting with a # - This is a common mistake because the # is used on the "href"

    When you are defining an anchor name you do not use a hashtag.
    Bear in mind that when you are referencing an anchor you do use a hashtag.

    bad Bad example: Hashtag on anchor name

    good Good example: No hashtag on anchor name

    We have a program called SSW Code Auditor to check for #3 and #4 on this rule.

    These are the things you should consider when creating an anchor link:

    Read more

  10. Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization (SEO) gurus are always looking to find new ways to increase their Google rankings.

    As we all know, a website is a pretty nifty thing to have for a myriad of different reasons. But the truth is that it's worth is derived from the people that surf it, and if no one is surfing it, then it becomes useless. So who's the biggest website referrer? The answer is Google in almost every case.

    So design your website with this in mind. In the eyes of a search engines, there are good and bad ways that you can design your website. Here's a list of suggestions to improve your Google ranking and other search engine optimization tips

    Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization (SEO) gurus are always looking to find new ways to increase their Google rankings.

    Read more

  11. Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your website is used.

    By using Google Analytics, you will be able to see what your visitors are viewing and what they aren't, what they spend large amount's of time on, what pages are causing errors, what pages are directing visitors to you, which browsers and devices are being used to see you site and more. All this information help you better structure your site to what your visitors like. It also allows you to compare site traffic from one month to another.

    The most useful reports:

    • Which are your most popular pages of your website
    • Which sites are referring the most hits to you
    • Which keywords are bringing users to your site
    • If you have downloads, which are the most popular

    To add Google Analytics to your website:

    1. Log into your Google account,
    2. Go to Admin ,
    3. Ensure both Account and Property
    4. Specify your website details,
    5. Find your Tracking Code,
    6. And add the script to your website
    tracking code property

    From this page, you will be able to get a JavaScript snippet to include in your application.

    20 08 3 30 55 PM compressor
    20 08 10 53 15 AM compressor

    Once deployed, this script will start tracking metrics and interacting with Google Analytics.

    You are good to go!

    Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your website is used.

    Read more

  12. If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

    The exception to this is if you are using open-source data. sprers.eu is a good example of this.

    wordpress edit
    github edit

    From Github, you can edit and submit a pull request. See sprers.eu (SSW People) or sprers.eu (SSW Rules) for more details.

    This is better than sending a 'Change from X to Y' email as the work can be done immediately with less work and management requirements.

    If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

    The exception to this is if you are using open-source data. sprers.eu is a good example of this.

    Read more

  13. Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately. No website is immune to such errors.

    A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if you have one.

    Figure: Bad example - The default code on sprers.eu

    Figure: Good example - The custom code in the sprers.eu

    For sprers.eu website, the detailed information would be presented to the remote machines when an unhandled error occurs if the customErrors mode is off.

    This error information is useful for the developer to do debugging. However, it would leak out some confidential information which could be used to get into your system by the hackers. We can assume that if a SQL exception occurs by accident, which may expose database sensitive information (e.g. connection string; SQL script). So, to prevent these leaks, you should set the "mode" attribute of the tag <customerrors> to "RemoteOnly" or "On" in the sprers.eu file and create a user-friendly customized error page to replace the detailed error information.

    Figure: Good example - Turning on "customErrors" protects sensitive information against Hacker

     bad
     good

    Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately. No website is immune to such errors.

    A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if you have one.

    Read more

  14. When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct.E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

    In .NET you are allowed to define a custom error page. When a user tries to access a URL which doesn't exist, .NET changes the URL and redirects to the custom error page. The original URL is passed as a parameter to the new URL.

    The advantage of this solution is, that the page looks nice and you can customize it according to the design and layout of your whole site.

    The disadvantage is, that .NET changes the URL. So if the user wants to correct the URL he entered, for example, because he just mixed up a letter, then this means quite a lot of work for him. He has to retype the whole URL or at least copy and paste the parameter out of the new URL. This is very uncomfortable for the user.

    Our solution is to show the customized error page while not change the original URL. So if the user wants to do any corrections, e.g. a mixed up letter, he can do that by just editing the URL in the address sprers.eu advantages of this solution are, that the site looks nice and matches the design of the whole site and that the user can easily change the original URL he typed.

    You can try any page name that doesn't exist like sprers.eu on the URL and it will open our error page. The original URL is not changed in the address bar. It should look like this:

     good

    In order to show the customized error page while not change the original URL, you can use sprers.euer() to keep the original URL.

    **Figure: Custom error page handler in sprers.eu **

    Related rule

    When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct. E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

    Read more

  15. sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, FireBug or IE8 developer Tools.

    JavaScriptBad1
    JavaScriptBad
    JavaScriptGood

    So you should always put JavaScript in a separate file. Then the line numbers will stay consistent during sprers.eug JavaScript in a separate file is also good for production as it improves performance due to browser caching.

    Note: During development, remember to hit CTRL-F5 to force the browser to re-fetch the files from the server or you may be debugging old version of the JavaScript file.

    sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, FireBug or IE8 developer Tools.

    Read more

  16. When you build a web application, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

    • Bookmarking of the pages
    • Gives the user to the ability to change the query string values in the address bar, rather than having to go back to the input form.
    querystring

    You may hear that query strings are bad and they leave you wide open to SQL Injection Attacks (especially when you use SQL statements in the URL). I don't subscribe to the security issues being the determining factor if I am determined enough, I can write a little application to send POST data to the webpage instead of in the query string. Both methods are open to SQL injection and invalid parameters, so you need to code to prevent that either way.

    The bottom line is that if you are not giving appropriate parameters in the query string then you are reducing functionality.

    Note: We all agree bookmarks are useful - it's the same for query strings.

    When you build a web application, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

    • Bookmarking of the pages
    • Gives the user to the ability to change the query string values in the address bar, rather than having to go back to the input form.

    Read more

  17. **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

    Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

    Then you need to:

    • add the JavaScript function eg. ValidateLength(control)
    • add 2 properties to every data control  eg. dataType="char" onkeyup="validateLength(this)"

    **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

    Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

    Read more

  18. When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source code will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

    Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

    1. Web Site Project

    Publish Web Site dialog box is designed to precompile and deploy your Web site to a new location (whatever it is, ftp://, http:// or drive:\path). During the deployment, source code are removed automatically. Besides, the precompilation process finds any compilation errors and identifies the errors in the configuration file.

    To access this dialog box, please open a Web site that you want to deploy and click Build menu, then click Publish Web Site .

    PublishWebsite

    See more about Publishing Web Sites.

    2. Web Application Project

    The Publish Web dialog box enables you to build and publish a Web application project to a new location. Like Publish Web Site dialog box, this utility can remove source code. However you have to select Only files needed to run this application to specify it. Other benefit of this utility is that potential errors and compile-time errors in the sprers.eu file and in other non-code files can be found.

    To access this dialog box, open a Web application project that you want to publish and click Publish ApplicationName on the Build menu.

    PublishWebApp

    See more about How to Publish Web Applications.

    When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source code will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

    Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

    Read more

  19. Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

    Bad Example

    Good Example

    Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

    Read more

  20. If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp. We use WhatsUp to do real-time sprers.eu these steps to check your website in WhatsUp:

    1. Add your website as a new device.
    2. Ping monitor is added automatically.
    3. Add an HTTP Content Scan monitor.
    4. Edit the scan script. In the script, you can see 2 keywords "Send" and "Expect". "Send" expression is an HTTP request to your website. "Expect" expression is a regular expression to check the key word in response from your website.
    1. Add the monitor to your device.

      Once a device is down or up, a WhatsUp action will tell SQL Reporting Services to send out a notification report. Our report looks like this:

    If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp. We use WhatsUp to do real-time monitoring. Follow these steps to check your website in WhatsUp:

    Read more

  21. Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

    Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

    On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

    PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

    In order to be a PWA, your app should:

    • Use a responsive design , so it works on desktop or mobile.
    • Be fast , using a service worker to precache the app resources (HTML, CSS, JavaScript, images) needed to run, and cache the data at runtime to improve performance.
    • Be installable , using a web app manifest and the beforeinstallprompt event to notify the user that it is installable.

    Examples of Progressive Web Apps can be seen at sprers.eu.

    pwa bad example
    pwa example

    You can check the Progressive Web App score of your application using Chrome's Developer tools.

    Note: See how to generate a PWA report on sprers.eu#devtools.

    PWA tools

    Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

    Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

    On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

    PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

    Read more

  22. If you are dealing with Content Management System (CMS), you are likely to play with pages with large amount of images and embedded videos. To improve the performance of those pages, and save bandwidth for the readers, loading content asynchronously (also called “lazy loading”) is recommended.

    It means the browsers will only load images and embedded videos in the visible area by default, then load the rest images and videos while users are scrolling down to them.

    On our rules web site, one of the pages’ initial loading size of images reduced from MB to KB after being applied “lazy loading” of images:

    load images 1

Control.ClientID Property

Gets the control ID for HTML markup that is generated by sprers.eu

Property Value

String

The control ID for HTML markup that is generated by sprers.eu

Attributes

BrowsableAttribute

Examples

The following examples show a Web user control that is inside a content page for a master page. The user control contains a DropDownList control and a Label control. The text that is displayed in the Label control is determined by the value that the user selects from the DropDownList control. The text value is set through client script so that the Web page does not have to post back to the server in order to set this value. To get a reference to the HTML element that is rendered for the Label control in client script, you must know the value of the control's ClientID property. However, because the user control can be put anywhere in a Web page, it is impossible to know in advance which naming containers will contain the controls. To make sure that the ClientID value will be the same as the ID value, the code sets the ClientIDMode value to Static.

The following example shows the user control.

The following example shows the content page that contains the user control.

The following example shows the master page that contains the content page.

Remarks

When a Web server control is rendered as an HTML element, the attribute of the HTML element is set to the value of the ClientID property. The ClientID value is often used to access the HTML element in client script by using the method. The ID is also often used in CSS rules to specify elements to style. For example, the following CSS style rule selects all elements that have the attribute value of and sets their attribute to :

sprers.eu provides multiple algorithms for how to generate the ClientID property value. You select which algorithm to use for a control by setting its ClientIDMode property. The algorithms are identified by the ClientIDMode enumeration values that are listed in the following table.

ValueDescription
AutoIDThe ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. Each segment is separated by an underscore character (_). This algorithm was used in versions of sprers.eu earlier than sprers.eu 4.
StaticThe ClientID value is set to the value of the ID property. If the control is a naming container, the control is used as the top of the hierarchy of naming containers for any controls that it contains.
PredictableThis algorithm is used for controls that are in data-bound controls. The ClientID value is generated by concatenating the ClientID value of the parent naming container with the ID value of the control. If the control is a data-bound control that generates multiple rows, the value of the data field specified in the ClientIDRowSuffix property is added at the end. For the GridView control, multiple data fields can be specified. If the ClientIDRowSuffix property is blank, a sequential number is added at the end instead of a data-field value. Each segment is separated by an underscore character (_).
InheritThe control inherits the ClientIDMode setting of its NamingContainer control.

The default value of ClientIDMode for a page is Predictable. The default value of ClientIDMode for a control is Inherit. Because the default for controls is Inherit, the default generation mode is Predictable. (However, if you use Visual Studio to convert a Web project to sprers.eu 4 from an earlier version, Visual Studio automatically sets the site default to AutoID in the sprers.eu file.)

For more information, see sprers.eu Web Server Control Identification.

Applies to

See also

Overview of the sprers.eu Framework

This chapter is from the book 

Understanding sprers.eu Controls

sprers.eu controls are the heart of sprers.eu Framework. An sprers.eu control is a .NET class that executes on the server and renders certain content to the browser. For example, in the first sprers.eu page created at the beginning of this chapter, a Label control was used to display the current date and time. The sprers.eu framework includes more than 90 controls, which enable you to do everything from displaying a list of database records to displaying a randomly rotating banner advertisement.

This section provides an overview of the controls included in sprers.eu Framework. You also learn how to handle events raised by controls and how to take advantage of View State.

Overview of sprers.eu Controls

The sprers.eu Framework contains more than 90 controls. These controls can be divided into seven groups:

  • Standard Controls&#;Enable you to render standard form elements such as buttons, input fields, and labels. We examine these controls in detail in Chapter 2, "Using the Standard Controls."
  • Validation Controls&#;Enable you to validate form data before you submit the data to the server. For example, you can use a control to check whether a user entered a value for a required input field. These controls are discussed in Chapter 3, "Using the Validation Controls."
  • Rich Controls&#;Enable you to render things such as calendars, file upload buttons, rotating banner advertisements, and multistep wizards. Chapter 4, "Using the Rich Controls," discusses these controls.
  • Data Controls&#;Enable you to work with data such as database data. For example, you can use these controls to submit new records to a database table or display a list of database records. Part III, "Performing Data Access," discusses these controls.
  • Navigation Controls&#;Enable you to display standard navigation elements such as menus, tree views, and bread crumb trails. Chapter 22, "Using the Navigation Controls," discusses these controls.
  • Login Controls&#;Enables you to display login, change password, and registration forms. Chapter 26, "Using the Login Controls," discusses these controls.
  • HTML Controls&#;Enable you to convert any HTML tag into a server-side control. This group of controls are discussed in the next section.

With the exception of the HTML controls, you declare and use all sprers.eu controls in a page in exactly the same way. For example, if you want to display a text input field in a page, you can declare a control like this:

<asp:TextBox id="TextBox1" runat="Server" />

This control declaration looks like the declaration for an HTML tag. Remember, however, unlike an HTML tag, a control is a .NET class that executes on the server and not in the web browser.

When the TextBox control is rendered to the browser, it renders the following content:

<input name="TextBox1" type="text" id="TextBox1" />

The first part of the control declaration, the prefix, indicates the namespace for the control. All the standard sprers.eu controls are contained in the namespace. The prefix represents this namespace.

Next, the declaration contains the name of the control being declared. In this case, a control is declared.

This declaration also includes an ID attribute. You use the ID to refer to the control in the page within your code. Every control must have a unique ID.

The declaration also includes a attribute. This attribute marks the tag as representing a server-side control. If you neglect to include this attribute, the tag would be passed, without being executed, to the browser. The browser would simply ignore the tag.

Finally, notice that the tag ends with a forward slash. The forward slash is shorthand for creating a closing tag. You can, if you prefer, declare the control like this:

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

In this case, the opening tag does not contain a forward slash and an explicit closing tag is included.

Understanding HTML Controls

You declare HTML controls in a different way than you declare standard sprers.eu controls. The sprers.eu Framework enables you to take any HTML tag (real or imaginary) and add a attribute to the tag. The attribute converts the HTML tag into a server-side sprers.eu control.

For example, the page in Listing contains a tag, which has been converted into an sprers.eu control.

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.euext = sprers.eung("T"); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>HTML Controls</title> </head> <body> <form id="form1" runat="server"> <div> At the tone, the time will be: <span id="spanNow" runat="server" /> </div> </form> </body> </html>

The tag in Listing looks just like a normal HTML tag except for the addition of the attribute.

Because the tag in Listing is a server-side HTML control, you can program against it. In Listing , the current date and time are assigned to the tag in the method.

The HTML controls are included in sprers.eu Framework to make it easier to convert existing HTML pages to use sprers.eu Framework. I rarely use the HTML controls in this book because, in general, the standard sprers.eu controls provide all the same functionality and more.

Understanding and Handling Control Events

The majority of sprers.eu controls support one or more events. For example, the sprers.eu control supports the event. The event is raised on the server after you click the button rendered by the control in the browser.

The page in Listing illustrates how you can write code that executes when a user clicks the button rendered by the control (in other words, it illustrates how you can create a event handler):

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { sprers.eu = "Thanks!"; } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show Button Click</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnSubmit" Text="Click Here" OnClick="btnSubmit_Click" Runat="server" /> <br /><br /> <asp:Label id="Label1" Runat="server" /> </div> </form> </body> </html>

Notice that the control in Listing includes an attribute. This attribute points to a subroutine named . The subroutine is the handler for the event. This subroutine executes whenever you click the button (see Figure ).

You can add an event handler automatically to a control in multiple ways when using Visual Web Developer. In Source view, add a handler by selecting a control from the top-left drop-down list and selecting an event from the top-right drop-down list. The event handler code is added to the page automatically (see Figure ).

Figure

Figure Adding an event handler from Source view.

In Design view, you can double-click a control to add a handler for the control's default event. Double-clicking a control switches you to Source view and adds the event handler.

Finally, from Design view, after selecting a control on the designer surface, you can add an event handler from the Properties window by clicking the Events button (the lightning bolt) and double-clicking next to the name of any of the events (see Figure ).

Figure

Figure Adding an event handler from the Properties window.

You need to understand that all sprers.eu control events happen on the server. For example, the event is not raised when you actually click a button. The event is not raised until the page containing the Button control is posted back to the server.

The sprers.eu Framework is a server-side web application framework. The .NET Framework code that you write executes on the server and not within the web browser. From the perspective of sprers.eu, nothing happens until the page is posted back to the server and can execute within the context of .NET Framework.

Notice that two parameters are passed to the handler in Listing All event handlers for sprers.eu controls have the same general signature.

The first parameter, the object parameter named , represents the control that raised the event. In other words, it represents the control that you clicked.

You can wire multiple controls in a page to the same event handler and use this first parameter to determine the particular control that raised the event. For example, the page in Listing includes two controls. When you click either control, the text displayed by the control is updated (see Figure ).

Figure

Figure Handling two controls with one event handler.

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void Button_Click(object sender, EventArgs e) { Button btn = (Button)sender; sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Button Counters</title> </head> <body> <form id="form1" runat="server"> <div> First Counter: <asp:Button id="Button1" Text="0" OnClick="Button_Click" Runat="server" /> <br /><br /> Second Counter: <asp:Button id="Button2" Text="0" OnClick="Button_Click" Runat="server" /> </div> </form> </body> </html>

The second parameter passed to the event handler, the parameter named , represents any additional event information associated with the event. No additional event information is associated with clicking a button, so this second parameter does not represent anything useful in either Listing or Listing

When you click an control instead of a control, on the other hand, additional event information is passed to the event handler. When you click an control, the X and Y coordinates of where you clicked are passed to the handler.

The page in Listing contains an control that displays a picture. When you click the picture, the X and Y coordinates of the spot you clicked display in a Label control (see Figure ).

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnElephant_Click(object sender, ImageClickEventArgs e) { sprers.eu = sprers.eung(); sprers.eu = sprers.eung(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show EventArgs</title> </head> <body> <form id="form1" runat="server"> <div> <asp:ImageButton id="btnElephant" ImageUrl="sprers.eu" Runat="server" OnClick="btnElephant_Click" /> <br /> X Coordinate: <asp:Label id="lblX" Runat="server" /> <br /> Y Coordinate: <asp:Label id="lblY" Runat="server" /> </div> </form> </body> </html>

The second parameter passed to the method is an parameter. Whenever the second parameter is not the default parameter, you know that additional event information is passed to the handler.

Understanding View State

The HTTP protocol, the fundamental protocol of the World Wide Web, is a stateless protocol. Each time you request a web page from a website, from the website's perspective, you are a completely new person.

The sprers.eu Framework, however, manages to transcend this limitation of the HTTP protocol. For example, if you assign a value to a Label control's property, the Label control retains this value across multiple page requests.

Consider the page in Listing This page contains a Button control and a Label control. Each time you click the Button control, the value displayed by the Label control is incremented by 1 (see Figure ). How does the Label control preserve its value across postbacks to the web server?

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show View State</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> <asp:Label id="lblCounter" Text="0" Runat="server" /> </div> </form> </body> </html>

The sprers.eu Framework uses a trick called View State. If you open the page in Listing in your browser and select View Source, you notice that the page includes a hidden form field named that looks like this:

<input type="hidden" name="__VIEWSTATE" id="__ VIEWSTATE" value="/wEPDwUKLTc2ODE1OTYxNw9kFgICBA9kFgIC Aw8PFgIeBFRleHQFATFkZGT3tMnThg9KZpGak55pvfInj1w==" />

This hidden form field contains the value of the Label control's property (and the values of any other control properties stored in View State). When the page is posted back to the server, sprers.eu Framework rips apart this string and re-creates the values of all the properties stored in View State. In this way, sprers.eu Framework preserves the state of control properties across postbacks to the web server.

By default, View State is enabled for every control in sprers.eu Framework. If you change the background color of a Calendar control, the new background color is remembered across postbacks. If you change the selected item in a , the selected item is remembered across postbacks. The values of these properties are automatically stored in View State.

View State is a good thing, but sometimes it can be too much of a good thing. The hidden form field can become large. Stuffing too much data into View State can slow down the rendering of a page because the contents of the hidden field must be pushed back and forth between the web server and web browser.

You can determine how much View State each control contained in a page is consuming by enabling tracing for a page (see Figure ). The page in Listing includes a attribute in its directive, which enables tracing.

Listing

<%@ Page Language="C#" Trace="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.eu = "Hello World!"; sprers.euDate = sprers.eu; } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show Trace</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label id="Label1" Runat="server" /> <asp:Calendar id="Calendar1" TodayDayStyle-BackColor="Yellow" Runat="server" /> </div> </form> </body> </html>

When you open the page in Listing , additional information about the page is appended to the bottom of the page. The Control Tree section displays the amount of View State used by each sprers.eu control contained in the page.

Every sprers.eu control includes a property named . If you set this property to the value , View State is disabled for the control. In that case, the values of the control properties are not remembered across postbacks to the server.

For example, the page in Listing contains two Label controls and a Button control. The first Label has View State disabled, and the second Label has View State enabled. When you click the button, only the value of the second Label control is incremented past 1.

Listing

<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Disable View State</title> </head> <body> <form id="form1" runat="server"> <div> Label 1: <asp:Label id="Label1" EnableViewState="false" Text="0" Runat="server" /> <br /> Label 2: <asp:Label id="Label2" Text="0" Runat="server" /> <br /><br /> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> </div> </form> </body> </html>

Sometimes, you might want to disable View State even when you aren't concerned with the size of the hidden form field. For example, if you use a Label control to display a form validation error message, you might want to start from scratch each time the page is submitted. In that case, simply disable View State for the Label control.

  
BlueDragon
Admin Console
BlueDragon
Admin Console, Security
Can I remove the BlueDragon Admin console?
After configuring your BlueDragon .NET website, you can remove all access to the Admin UI by removing or renaming adminbda or adminbda located in the \config folder of the BlueDragon installation. sprers.eu is using adminbda if you are using Microsoft .NET Framework and using adminbda if you are using .NET Framework version
BlueDragon
Admin Console, Miscellaneous
Can you explain more about the possibility of encrypting and precompiling templates (or &#;sourceless deployment&#;) in BlueDragon?
Developers often want to deploy their code without source (sourceless), and while this has long been a problem for ColdFusion developers, BlueDragon has solved this problem since

Developers familiar with the ColdFusion CFENCODE (or previously named CFCRYPT) utility know that there are ways to revert that back to source code. Many developers have simply given up on the hope of sourceless deployment.

BlueDragon offers sourceless deployment with a feature called Precompiled, Encrypted CFML Templates. Offered in all but the free Server edition, you can create precompiled or encrypted templates from the Admin console or via a command-line utility. (The free Server edition also cannot process precompiled or encrypted templates, but all other BlueDragon editions, including in their trial and developer modes, can run precompiled/encrypted templates.)

The output of the process for each input .cfm (or .cfc) file is a new file with the same extension, but which is not human readable. (See the BlueDragon User Guide for more information.)

Note that you can compile all or just some of your CFML templates.

Additionally, BlueDragon uniquely supports setting an expiration date for your code during the precompilation/encryption process, so your code can be offered as a trial that will expire on the date set. Note that only the code expires, not the BlueDragon engine, so to offer a new set of code without an expiration date (or with a new one), you only need to give the client the new code (there's no need to reinstall BlueDragon).

Finally, note as well that the encrypted templates feature also offers greater security in a couple of different aspects.

If you'd like additional background information on the precompilation or encryption processes, see below.

Background: Page Processing

To understand this unique feature, it's important to understand how BlueDragon processes CFML templates (pages). CFML processing is done by BlueDragon in two steps:
  1. In step one, BlueDragon "parses" the static information in the CFML page (which tags does it contain, what attributes do the tags have, which portions of the page are plain HTML, etc.) and creates a representation of the page as an ordered collection of Java objects.
  2. In step two, the objects created in step one are "rendered" to create the HTML response that's sent to the browser. This is the dynamic, "runtime" step where expressions are evaluated, queries are executed, session and client data is managed, etc.

The parsing step only needs to be done once, the first time a page is requested--the object representation of the page is stored in memory in BlueDragon's "file cache" and the CFML source code isn't needed anymore. For subsequent requests for the page, the object representation is retrieved from cache and rendered directly. Of course, if a page is removed (flushed) from the cache, or the CFML source file is modified, the parsing step has to happen all over again.

Precompiled Templates

Here's where the "Precompiled" part comes in. The Java objects that represent the parsed CFML page can be serialized (converted to a byte stream) and written to a file. Therefore, a precompiled template is one where the CFML source has been parsed by BlueDragon, converted to a collection of Java objects, and then those Java objects are written (serialized) back to the file in place of the original CFML source. (Note that the process of precompiling destroys the original CFML source, so make a backup first!).

There are two advantages to precompiled templates:

  1. Because the CFML has already been parsed, BlueDragon can skip that first step and directly render the page. This saves processing time and improves performance, even if the page isn't stored in BlueDragon's file cache.
  2. It provides a level of obfuscation that helps protect your CFML source from prying eyes. It will be difficult (but not impossible) for someone to figure out how to de-serialize the Java objects that represent the CFML page, because those objects are proprietary to BlueDragon and their definition is not publicly available. But, even if someone does figure out how to de-serialize a precompiled template, all they'll get for their efforts is a bunch of Java objects--not your CFML source code.

Encrypted Templates

Additional security for your CFML source code can be provided by creating "Encrypted" precompiled templates. When you create precompiled templates (either from the admin console or via a command-line tool), you have the option of encrypting the resulting serialized objects using industry-standard, commercial-grade encryption algorithms provided by the Java VM (see sprers.eu for details).

The advantage of encrypting your precompiled templates is that it makes it extremely difficult (almost impossible) for anyone to decrypt the templates and reconstruct your CFML source. The disadvantages of encryption are that it significantly increases the file size, and eliminates the performance advantage of precompiling due to the extra processing required to decrypt the template.

There's more. Any CFML template encrypted using BlueDragon's built-in "default" key can be decrypted and run on any version of BlueDragon. However, you also have the option when creating precompiled, encrypted templates to have BlueDragon generate a unique key for that set of templates. Then, those templates can only be decrypted when that unique key is configured in the BlueDragon admin console. You can choose to create a single unique key and distribute that key to all your customers so they can run your code; or, you can create a unique key for each individual customer. It depends on what level of control and security you need.

What About the Former BDA Approach

Finally, for those of you who were interested in BDAs (BlueDragon Archives), here are the problems we discovered with BDAs, all of which are successfully addressed by Precompiled, Encrypted Templates:
  • Deployment of BDAs is awkward. There are several issues here:
    • The BDA only contains the dynamic contents of the application directory structure (".cfm", ".cfc", etc.) and not the static contents (".html", ".gif", ".js", ".css", etc.). This makes deploying an application somewhat disjoint: you have to deploy the original directory structure minus the dynamic content, and then also deploy and configure the BDA.
    • Some of our customers only want to encrypt certain sub-directories of their application and not the entire application; some want to encrypt only custom tag libraries or CFCs. Again, this makes for a somewhat disjoint deployment using BDAs.
    • The configuration required for BDAs can be confusing and error-prone for our customers or their customers.
  • "Default document" processing doesn't work with BDAs. That is, if you configure "sprers.eu" as the default document for a directory request (a request ending with "/"), it doesn't work if the sprers.eu file is within a BDA.
  • Microsoft IIS web server has an option to "check that file exists" before handing the request over to BlueDragon for processing, returning a Not Found result to the browser if the file doesn't exist. This doesn't work for BDAs. (Other web servers may have similar options).
  • With BDAs, it's not possible to update individual files for "patching" an application.

For our customers who are committed to using BDAs, we'll continue to support them as long as you need them (BDA support still exists in BlueDragon and , we're just not going to publicize it anymore).

Precompiling from the Command Line

As mentioned above, it's possible to perform the precompilation from the command line, in addition to the Admin console option. The utility is called simply precompile (bat, exe or sh depending on operating system) and is found within the BlueDragon installation in either the bin directory of the java editions or the precompiler directory in sprers.eu

Learning More

The precompilation feature is discussed further in the BlueDragon User Guide. In the edition, it's in section

We hope you find this new feature interesting and useful. As always, we look forward to your feedback to help us improve this feature and others supported by BlueDragon.

BlueDragon
Admin Console, Version differences
Do I need to apply hotfixes if I just downloaded the latest version?
Between releases of BlueDragon we may roll up several bug fixes into a "hotfix". Such hotfixes are NOT incorporated into the downloadable version of the product, until we come out with a new point release. For instance, for the edition, we came out with hotfixes (for all BlueDragon editions) in May and August , and until the next point release (), there will be no update to the installer.

So, yes, you still need to apply hotfixes even if you just downloaded the "latest" version, assuming there are any hotfixes to apply. They are listed at sprers.eu

If you haven't taken the time to apply those updates, we recommend you do. As the page points out, it's only necessary to apply the latest hotfix (if more than one exists), because the hotfixes are cumulative.

In order to determine whether you need the update, you may need to determine what release of BlueDragon you're currently running. See FAQ #

Applying a hotfix is quick and painless. The sprers.eu file associated with the hotfix zip file for each edition (and operating system) explains the steps needed to apply the update. It's just a matter of stopping BlueDragon (or the J2EE or .NET server), copying/renaming one or more files as directed (never more than a few), and then restarting and confirming the new release.

BlueDragon
Admin Console, Miscellaneous
Do you have any performance tuning recommendations?
Tuning BlueDragon should generally involve the same practices and techniques used with ColdFusion.

You should carefully consider all the settings in the BlueDragon Admin console. The defaults may require tuning in your environment (such as the default of 3 for each datasource's "maximum connections", or the file cache size of 60, or the "max heap size" of k in the Java editions).

Note as well that BlueDragon offers some advantages in performance reporting, over CFMX, in that there are several "runtime state" reports in the BlueDragon Admin console, for both the entire server, each datasource, and the file/template cache. These reports can help identify bottlenecks, as well as help you determine the correct values to enter for the Admin console settings.

Of course, nearly any CFML application will benefit from judicious use of caching, whether query caching (CFQUERY CACHEDWITHIN and CACHEDAFTER and BlueDragon enhancements), page output caching (CFCACHE), partial page caching (BlueDragon's own CFCACHECONTENT). A good primer on CFML caching techniques is Caching in ColdFusion, by Matt Boles at Macromedia. (Note that if you use or are interested in Brandon Purcell's CF_Accelerate tag, we support that as well.)

Other code optimization techniques are offered in the CFMX manuals on Optimizing ColdFusion applications

Finally, as for configuring the environment (OS, web server, DBMS), we don't have any specific performance tuning recommendations for BlueDragon, but again some of the common techniques recommended for ColdFusion would apply. There have been several such resources posted by Macromedia. If you have any questions or concerns regarding the recommendations there and whether they apply to BlueDragon or in your environment, we're happy to discuss them with you.

Additionally, there are some .NET-specific aspects to consider for those running the .NET edition of BlueDragon. The final chapter of the manual, Deploying CFML on sprers.eu, lists several generic .NET resources, including some focused on .NET tuning. We will also be adding more information (there or in a technote) elaborating on such issues of particular interest to CFML developers.

You may also find FAQ # to be of interest.

BlueDragon
Admin Console, Supported Features, Web Application
Does BlueDragon support clustering and session replication?
It is indeed possible to do clustering with BlueDragon, and even enable session replication across servers in a cluster with the J2EE and .NET editions. Such clustering support is not enabled by features of BlueDragon but rather by those of the platform on which BlueDragon is installed (in the case of session replication, it's enabled by the underlying J2EE server or .NET framework).

Clustering servers is typically done using hardware or software mechanisms that offer load balancing and fail-over. Such mechanisms have been used with all editions of BlueDragon.

A common limitation with ColdFusion's built-in clustering (and indeed with some other clustering solutions) is that it forces the use of what are called "sticky sessions", meaning that once a user with a given session is on a given machine, they must stay on that machine. This reduces reliability, since if that one machine goes down, the user and their session cannot be "failed over" to another server in the cluster.

With the J2EE and .NET editions of BlueDragon, this issue can be eliminated. The platform on which BD is deployed will control whether clustering and failover works, and if the platform also supports session replication (between servers in the cluster), then CFML sessions created in these editions will benefit from that session replication.

In the BlueDragon Admin console, one can declare that "j2ee sessions" (or ".net sessions" on .net) should be used, which means that BlueDragon does not manage the sessions but instead the underlying platform does.

No other change is required of your CFML code. You continue to set and get session variables the same way you do already.

If you then enable clustering and/or replication of sessions between servers, your CFML sessions will be replicated. (The use of such session replication has been found to fail with ColdFusion MX and certain J2EE servers, including WebSphere Network Deployment edition, among others. BlueDragon has been found to support session replication in all environments tested.)

Note that BlueDragon supports persistence of CFC instances to sessions, and those can be replicated as well. (This is possible because BlueDragon supports serialization of ColdFusion Components, where ColdFusion does not.)

Many shops have switched to using Client variables instead to support persistence of a user's data across servers. BlueDragon certainly supports client variables, but note that sessions can be set to timeout in a timeframe of minutes while client variables timeout in a timeframe of days (so people have to build custom solutions to clear out a user's client variables to simulate a timeout). The ability to return to using sessions in such cases can relieve some challenging problems.

To learn more about the mechanisms for session replication supported in a particular J2EE server, see that server's documentation. In .NET, sessions can be persisted to either a database or "state server", as configured in the sprers.eu or sprers.eu files with the .NET sessionState directive, as discussed in such resources as:
sprers.eu

Additionally, .NET users should also consider the commercial product, ScaleOut State Server, which offers many improvements over .NET's built-in session State Server mechanisms (and was built by former Microsoft engineers responsible for the state server feature).

BlueDragon
Admin Console, Exceptions, Supported Features
Does BlueDragon support the notion of limiting the execution time of CFML pages?
BlueDragon does not support page execution timeouts in all the same ways developers may expect from their experience with ColdFusion.

First, BlueDragon does not currently support an admin console setting to "Timeout Requests" for all pages.

Second, like CFMX, BlueDragon does not support the use of RequestTimeout as a query string.

The .NET edition of BlueDragon does support the new CFSETTING RequestTimeout attribute, which was introduced in CFMX. If a CFML page on BlueDragon/.Net gets the .NET error, "Request timed out", this can be resolved by adding the CFSETTING tag (or increasing its timeout value) either on the page that's timing out or in the sprers.eu (to affect all pages in that application).

Also note that by default, the page timeout for all .NET web pages is 90 seconds. This is imposed by the .NET framework, not BlueDragon. It can be configured in the sprers.eu (or sprers.eu) file by using in the executionTimeout attribute of the <httpRuntime> element. For example:

Finally, the Java editions of BlueDragon do not support the CFSETTING attribute RequestTimeOut attribute. Indeed, they simply ignore it if used. As such, in the Java editions of BlueDragon, there is currently no way to limit execution time for a CFML page.

BlueDragon
Admin Console, DataSource, JDBC
How can I add a datasource for a database not listed in the &#;driver types&#; drop-down?
Database access in BlueDragon is based on the standard Java JDBC API (for the Java-based products, Server, Server JX, and J2EE) or sprers.eu (for the .NET edition). It also supports ODBC in all editions, when deployed on Windows.

Depending on the edition of BlueDragon you're using, BlueDragon may provide built-in drivers or you may be able to add support for other databases, if you can obtain and install the needed drivers.

Free Server Edition

The free Server edition allows use of ODBC databases (on Windows) and (on Linux or OS X) either PostgreSQL or MySQL only. See below for issues regarding using ODBC and MySQL databases.

Server JX and J2EE Editions

The other editions, BlueDragon Server JX and BlueDragon/J2EE, are bundled with JDBC drivers for Microsoft SQL Server, Oracle, and PostGresQL databases. See below for issues regarding using ODBC, MySQL and other databases.

.NET Editions

BlueDragon for the Microsoft .NET Framework comes bundled with sprers.eu drivers for Microsoft SQL Server and Oracle. See below for issues regarding using ODBC and MySQL databases.

ODBC Datasources: All Editions

All editions provide access to ODBC datasources on Windows machines. To add a datasource for MS Access or another ODBC datasource (such as MySQL, PostGreSQL and more), see How do I add a datasource for MS Access and other ODBC databases?.

MySQL: All Editions

For information on defining MySQL Datasources, see How can I define a MySQL datasource?.

Other Databases: Server JX and J2EE Editions

What about other databases, such as DB/2 or DB2, Sybase, Informix, Ingres, SAP DB, Firebird, Pointbase, Cloudscape, etc.?

In order to access a specific vendor's database product on a Java version of BlueDragon, a JDBC driver for that product must be installed in BlueDragon (supported only on the Server JX and J2EE editions). For additional information about JDBC, see:

sprers.eu
To add another database driver, install it per the driver's instructions and add the location to the BlueDragon classpath (in the admin console, go to "BlueDragon Server>vm classpath". Restart BlueDragon. Then, to configure the datasource on the "Datasources>Configure" page in the BlueDragon administration console, select "Other". The online help for the next page of the datasource wizard contains instructions on providing the driver class name and database URI for the driver you're adding.

See the online help in the BlueDragon administration console for further details, as well as further discussion in the BlueDragon User's Guide.

Other Databases: .NET Edition

What about other databases not listed in the drop down for adding datasources?

In order to use any databases other than those listed in the Admin Console, you must use an ODBC datasource. See the discussion above about ODBC datasources.

BlueDragon
Admin Console, Administration, DataSource
How can I define a MySQL datasource?
MySQL is supported in all BlueDragon editions, either via JDBC or ODBC.

In the Server JX, J2EE, and .NET editions, an option is offered in the datasource configuration page of the administration console. In all editions, a MySQL datasource can be defined using ODBC.

In all cases, we do not provide the MySQL database drivers with BlueDragon. MySQL AB restricts redistribution of the MySQL drivers with other products, though the database itself is open source. For more information, see the MySQL Licensing Policy for more information.

But installing it is simple enough, whether to use ODBC or JDBC. The following steps describe first using the ODBC and then the JDBC driver.

Steps to using the MySQL ODBC Driver for all BlueDragon editions

  • Download the latest MySQL Connector/ODBC driver from the MySQL web site:
    sprers.eu
    1. After reviewing information on the page, choose the link for the latest stable release.
    2. On the page that follows, scroll down to the download links.
    3. Choose the download appropriate to your platform (choose "pick a mirror", then any listed site, and download using either http or ftp as you prefer).
    4. For Windows users, run the installer and proceed to define an ODBC datasource using the Windows ODBC control panel. For other users, consider using the JDBC driver discussed below, or follow the instructions offered on the MySQL site for installing and using the ODBC driver.
    5. Once an ODBC datasource has been defined, view the "data sources" page in the BlueDragon Admin console and choose the "ODBC Refresh" button below the list of any current datasources. BlueDragon will refresh the list with any ODBC datasources you have defined.

Steps to using the MySQL Driver for Server JX and J2EE editions

  • Download the latest MySQL Connector/J driver from the MySQL web site:
    sprers.eu
    1. After reviewing information on the page, choose the link for the latest stable release.
    2. On the page that follows, scroll down to "Sources and Binaries".
    3. Choose the "download" link. Windows users will likely prefer to choose the zip file format, while Linux, Solaris, Mac and other users may prefer the sprers.eu format.
    4. The next steps (to extract the driver from the compressed file) will vary depending on the file type chosen, your operating system, your browser, and your installed support for unzip-type programs. The files within the compressed file (zip or sprers.eu file) are stored within it in a directory such as mysql-connector-javastable (your version of the driver may be slightly different).
    5. You can choose to extract the files from the compressed file to a directory of that same name (mysql-connector-javastable) on your system. But of all the files within the compressed file, the only one that really matters for use with BlueDragon is the actual driver jar file, which for the version would be named sprers.eu You may choose to extract just that file, and place it on your file system within the BlueDragon directory as discussed in the following sections.

  • Configure BlueDragon to recognize the driver
  • The steps to configure BlueDragon to recognize the MySQL driver will vary from product to product (Server, Server JX, .NET, and J2EE):
    • In the Server (non-Windows) or Server JX editions, simply save the jar file (from above) as sprers.eu in the lib directory under BlueDragon, such as:
      C:\BlueDragon_Server_JX_61\lib\sprers.eu
      Then restart BlueDragon.
    • In the J2EE edition, you can leave the file named as it was on download, but simply place it in the WEB-INF/lib directory of the web application.
    • It's also possible in the Server JX edition to place the jar file anywhere in the file system and use its original name. Simply go to the "BlueDragon Server>vm classpath" page of the administration console and add the path to the JDBC driver JAR file. Then restart BlueDragon.
    After making these changes and restarting BlueDragon, you can then define MySQL datasources using the provided "MySQL" option on the drop-down for driver types in the BlueDragon administration console.
For the .NET edition, follow the steps outlined in the admin console page for adding a MySQL datasource.

We encourage you to review the MySQL licensing policy before using their JDBC driver (or the MySQL database) with BlueDragon, as there are circumstances where they require you to purchase a commercial license or risk having your software "infected" by the GPL:

sprers.eu
If you're looking for a database that--unlike MySQL--can be used for free in all circumstances, we recommend that you consider PostgreSQL:
sprers.eu
The PostgreSQL JDBC driver is bundled with all BlueDragon editions.
BlueDragon
Admin Console, Security
How can I secure the BlueDragon Admin UI in BlueDragon?
The following are some suggestions:
  1. Password protection:
    Password-protect access to the admin pages by configuring and admin password on the "License & Security" page of the BlueDragon Admin UI

  2. IP Filtering
    Access to the BlueDragon Admin UI can be restricted to particular client computers. To list the ips which will be allowed access, simply add them in a comma-separated list in the BlueDragon Admin UI under License & Security tab. Use the Help button at the top of the License & Security page for specific examples when configuring this option.

  3. Remove the Admin Pages
    You can entirely remove the Admin UI by removing or renaming the file for the Admin UI which is located in the folder of the BlueDragon installation.
    For example, with BD .NET this would be a file named either or . sprers.eu uses one other other, depending on which version of the .NET framework ( or ) is being used.
    See BD FAQ # for info on how to switch .NET framework versions.
    With BD JX, the name of the file is just

    If you choose this option, be aware that you must then manually make any changes to the global or individual sprers.eu file (whose location for a given web site or web app is discussed in the BlueDragon/.NET documentation).

  4. Rename the Admin Console
    It is indeed possible to rename the url used to access the BlueDragon Admin console. The default is to append /bluedragon/sprers.eu to the URL for the web site or given virtual directory (or directory configured as a web application, as discussed in the documentation). You can change the path used to call up the Admin console by manually editing the sprers.eu

    (Notice that there is no /bluedragon/sprers.eu file in the web application. BlueDragon uses an internal mechanism, driven by configuration within the sprers.eu, to control the URL to be used.)

    Within the <server> <file> element, there is an <application name="admin"> node:

    <server>
      <file>
        <application name="admin">
          <name>admin</name>
          <path>C:\sprers.eu\config\sprers.eu</path>
          <context>/bluedragon</context>
        </application>
      </file>
    [other elements may follow this ]
    </server>

    You can simply change the <context> element to something other than bluedragon, then use that in the URL to call up the Admin console (still adding the /sprers.eu after that when typing the URL in the browser, not by adding it in the XML above).

    If you wanted to change the admin console URL for all web apps on the server, apply this change in the global sprers.eu admin file.

    Finally, if you change the sprers.eu file, you must restart the affected web app for the changes to take effect. See the documentation on how to restart web apps.

BlueDragon
Admin Console, DataSource
How do I add a datasource for MS Access and other ODBC databases?
It's certainly possible to use MS Access and other ODBC datasources (on Windows machines), including PostGreSQL, MySQL, and others. Before discussing this, be aware of the difference between adding a datasource (such as a datasource called "mytest" pointing to a MySQL database called "mytest") and adding a database driver (such as the ODBC driver allowing you to use a MySQL or other database). This FAQ discusses both aspects. This is also discussed in the BlueDragon User Guide.

Auto-detection of ODBC Datasources

BlueDragon automatically detects and loads into its administration console any ODBC datasources (such as a "northwind" datasource pointing at the SQL Server "Northwind" database) that you or others may have defined in your environment (whether by way of the Windows "ODBC Data Sources" control panel tool or the ColdFusion 5 Administrator). You can immediately use any such datasources that are already defined when BlueDragon initializes on startup (unless you need to add a username or password).

Adding New ODBC Datasources

If you add datasources using either of those other means after BlueDragon has started, you can simply press the "ODBC refresh" button provided on the datasources page of the BlueDragon administration console. This will refresh the list and detect new ODBC datasources. Again, you may need to add a username or password to the datasource definition before you can use it.

Therefore, to add an MS Access or other ODBC datasource to BlueDragon, add it using the Windows "ODBC Data Sources" control panel tool. This can be accessed from "Administrative Tools" in Windows and above.

Adding a UserName or Password

The auto-detection mechanism cannot pick up any username or password defined in the ODBC datasource (entered in the Windows Datasource control panel tool). If you intend to rely on the username/password being provided in the datasource definition (rather than providing it on the CFQUERY), you must then re-enter those values in the BlueDragon datasource definition.

Adding New ODBC Drivers

If a driver for the database you wish to use isn't listed in that Windows ODBC Data Sources panel, you can add them by installing them yourself. Many databases will automatically add a new ODBC driver into the windows environment during installation of the database software. Otherwise, you may be able to obtain the database driver via the internet.

For instructions on obtaining and installing the MySQL ODBC driver, see "How can I define a MySQL datasource? ".

To obtain an ODBC driver for PostGreSQL, see sprers.eu It will be helpful to also review the instructions for installing and using the MySQL ODBC driver as many steps will be similar.

For other databases, simply seek the appropriate ODBC driver from any source on the Internet, and follow the instructions above.

BlueDragon
Admin Console, Version differences
How do I determine the release of BlueDragon I&#;m running?
You can view your current engine revision in any of several ways:
  • it's displayed at the top of the debugging info displayed on each CFML page (assuming you've enabled it in the BD Admin console)
  • it's displayed in the Admin console itself, at the bottom of the general>runtime state page
  • it can be viewed by outputting the variable #sprers.eutversion# in a CFML page (yes, we use the same ColdFusion structure in the Server scope that ColdFusion uses to report this sort of info)
BlueDragon
Admin Console, Administration, General Info, Miscellaneous
How do I determine what sprers.eu Admin Console pertains to a particular URL?
sprers.eu has a separate Admin Console for each IIS web site and web application. This is an incredibly useful feature when you're running disparate applications on one machine because it allows you to configure them entirely separately and differently. It also means that you can trip yourself up if you configure something for one site when you mean to configure it for another. Sometimes it can be difficult to tell what sprers.eu Admin Console applies to a particular URL. Here's an easy way to tell: take the following CFML code, put it in a .cfm file in the directory of interest, and browse to it as you would the directory of interest (NOTE: code in an sprers.eu file may affect the normal processing of this file). It will give you a link to the sprers.eu Admin Console that applies to that URL. <cfif FindNoCase(".NET", sprers.eutlevel)> <cfobject type="java" action="create" name="sprers.eu" class="sprers.eune" > <cfset sprers.eukingDir = sprers.eukingDirectory().getAbsolutePath()> <cfset sprers.eudmin = "http"> <cfif FindNoCase("HTTPS", sprers.eu_Protocol)> <cfset sprers.eudmin = sprers.eudmin & "s"> </cfif> <cfset sprers.eudmin = sprers.eudmin & "://" & sprers.eu_Name> <cfif sprers.eu_Port NEQ 80> <cfset sprers.eudmin = sprers.eudmin & ":" & sprers.eu_Port> </cfif> <cfset sprers.eudmin = sprers.eudmin & sprers.eut_Path & "/bluedragon/sprers.eu" > </cfif> <html> <head> <title> My BlueDragon Admin Console </title> </head> <body> <cfif isDefined("sprers.eudmin")> <cfoutput> My BlueDragon Admin Console: <a href="#sprers.eudmin#">#sprers.eudmin#</a> </cfoutput> <cfelse> No implementation for your app server. </cfif> </body> </html>
BlueDragon
Admin Console, DataSource, JDBC
I get a &#;General SQL Error&#; trying to use or verify a datasource. Why doesn&#;t it give a more useful error?
We've noticed that with some JDBC drivers you'll often get a "General SQL Error" the first time you try to verify or use the datasource, and then a more specific error the second time. We think we know why this might be happening and are investigating a solution. In the mean time, if you get a "General SQL Error" when verifying or using a datasource, try verifying it a couple of times (in the admin console) to see if you get a better message the second time.
BlueDragon
Admin Console, Administration, Installation, Registration
I want to input my BlueDragon license key. How do I do that?

Normally this is done using a web browser. In that scenario, you would simply use the browser to access the BD admin pages, and input the key on the Licensing page.

When a BD installation has no license key installed, it will run in Developer Mode. Note that this will occur if you use the BD admin pages to remove the key.

When removing a key, you should always do so from a browser that is running on the SAME machine as BlueDragon. To understand why, read on

When BD is running in Developer Mode, the BD admin pages can only be accessed from a browser that is running on the same machine where BD is installed.

This means that it is possible to use a remote browser to remove a license key, but then that remote browser will be denied any further access to the BD admin pages. Remote browsers are denied such access for security reasons.

In this case, here is how to enter your license key:

  • If using BD Server or BD Server JX:
    1. Stop BlueDragon (see below for more details on stopping/starting)
    2. Use a plain text editor to edit the "sprers.euties" file so that the value of the "sprers.eu" property is your license key. (The file is in the config folder of the BlueDragon installation directory.)
    3. Start BlueDragon
  • If using BD .NET or BD J2EE:
    1. Stop the BlueDragon web application (see below for more info on starting/stopping)
    2. Use a plain text editor to edit the sprers.eu file for your BD installation. (In a J2EE web application this file is located in the web app's WEB-INF\bluedragon directory. In a .NET implementation, the location depends on the installation choice: in a "single virtual directory" installation, it's that virtual directory's bluedragon\config directory. For the other .NET installation choices, the key goes in a special central sprers.eu in the sprers.eu\config directory.)

      In that file, you'd need to look under the "<server>" node, then under the "<system>" node. Under there is where you'd need to have a node that looks like this:

      So for example if your key is "ABC" then you'd have something like this in your sprers.eu file:

    3. Start the BlueDragon web application

    Stopping/Starting BlueDragon

    For more information on stopping and starting the BlueDragon web application as deployed on J2EE or .NET, see FAQ the respective BlueDragon manuals for those products.
BlueDragon
Admin Console
I&#;m having trouble with a datasource in the .NET edition. I&#;ve added it, and verified it in the Admin console, yet when I try to use it in my CFML page, I get &#;The datasource xxx could not be found&#;. (Or I make other admin console changes and they don&#;t seem to take effect.)
The problem is likely due to the fact that BlueDragon/.NET enables multiple admin consoles, one per web site or virtual directory (because .NET regards each web site or virtual directory as a different "application domain"). The problem is likely that you're adding/verifying the datasource in one admin console (such as that for the web site root), but running your CFML page within a virtual directory or another web site. You must add the datasource (and any admin configuration settings) in the admin console for the web site or virtual directory in which the code is running. For more info on finding the appropriate Admin Console, see FAQ

If you're concerned because you want to add a datasource to all the admin consoles, and don't want to add/update it one-by-one, be aware that BlueDragon/.NET supports a notion of inherited global admin settings, where you edit a central sprers.eu with the desired shared settings, and all the web sites and virtual directories inherit from that. See section of the manual for more information.

For more information, see the manual, "Deploying CFML on sprers.eu Servers", particularly sections and (the section numbers are as of the release of the docs).

BlueDragon
Admin Console, Session Tracking
I&#;m running on sprers.eu, on IIS 6, and am frequently losing my sessions and/or am frequently being logged out of the BlueDragon Admin console. What gives?
The problem is not a BlueDragon one but rather a common problem that trips up even sprers.eu developers. If you set up your IIS 6 application pool to enable the "web garden" (or setting the "max number of processes" for that pool to greater than 1), you are in effect creating a cluster of instances.

A problem exists, however, if you enablel .NET sessions in BlueDragon's admin and also have left .NET's session management to its default of storing sessions in memory (inproc). The problem is that, now with web gardens enabled, if a user is moved by IIS and .NET from one process/instance to another, the session on the first won't exist on the second.

The simple solution is to change your .NET session configuration from "inproc" to either "stateserver" or "sqlserver". Again, this is purely a .NET problem with a .NET solution. It was discussed at further length in a BlueDragon blog entry.

BlueDragon
Admin Console, General Info
I&#;ve configured a Missing Template Handler in IIS7 for BlueDragon but I continue to get a Server Error, error page. How can I configure my custom Missing Template Handler to override the server&#;s custom page?
In IIS Manager, choose Error Pages, located under the IIS configuration section. Highlight Status Code and choose "Edit Feature Settings" in the far right frame. If Custom Errors is selected, this indicates that the Server will provide the Custom Error page and not BlueDragon. You should choose Details and your Missing Template Handler will be served when a occurs.
If this does not help, see FAQ
BlueDragon
Admin Console, Security
I&#;ve lost my password to open the BlueDragon admin console. How can I recover from this?

Stop BlueDragon. For BlueDragon JX, stop the BlueDragon JX service using the services control panel. For sprers.eu, stop IIS. For BlueDragon JEE, stop the JEE container.

Edit your "sprers.eu" configuration file (whose location is discussed in FAQ ) and find the <server><system><password> entry. Delete whatever value you find there so that the <password> entry is empty:

<server> <system> <password></password> </system> </server>

Restart BlueDragon. For BlueDragon JX, start the BlueDragon JX service using the services control panel. For sprers.eu, start IIS. For BlueDragon JEE, start the JEE container.

Since there's no password defined, you'll be able to access the BD admin console directly without logging in. Immediately set a new password.

BlueDragon
Admin Console, Security
Where do I find the cfml pages for the BlueDragon Admin console?
There are no BlueDragon Admin cfml pages. The pages are stored in sprers.eu located in the \config folder of your BlueDragon Installation directory. If you are running sprers.eu, the file is named adminbda and adminbda. Your version of .NET determines which sprers.eu is being used.
BlueDragon
Admin Console, Installation
Where do I place files in support of CFXs?
In the Java versions of BlueDragon, the Java class file supporting the CFX must be either an unbundled .class file or bundled within a .jar archive. For BlueDragon Server or Server JX, the class files can be placed in the
BlueDragon
Admin Console, Installation
Where is the sprers.eu file located?
The location of the sprers.eu file, which holds changes made in the BlueDragon admin console, depends on the edition of BlueDragon being used.

In the Server or Server JX editions, it's in the [bluedragonroot]/config/ directory where [bluedragonroot] is the location where BlueDragon was installed (such as C:\BlueDragon_Server_JX_62, or /usr/local/NewAtlanta/BlueDragon).

In the J2EE edition, it's in the WEB-INF/bluedragon/ directory of the BlueDragon web application or WAR file.

In the .NET edition, the location depends on the kind of installation performed and whether multiple applications (web sites, virtual directories, or directories defined in IIS to be an application) have been defined. See the documentation, Deploying CFML on sprers.eu Servers, in the section "sprers.eu Configuration File Location", for more information.

BlueDragon
Admin Console, Administration, Web Application
Why aren&#;t my session being shared between CFML and sprers.eu pages?
The simplest reason would be if you have not enabled ".net sessions" in the BlueDragon admin console's "application>settings" page. Further, be aware that your code may be running in a virtual directory or web site where its own BlueDragon Admin Console settings differ from the global admin console. Use http://yourdomain/yourvd/bluedragon/sprers.eu to look at the Admin Console for the virtual directory. For more info on finding the appropriate Admin Console, see FAQ

Another possible issue could be that your CFML code is using a named application (CFAPPLICATION NAME="xx" SESSIONMANAGEMENT="yes"), in which case you must write code in the sprers.eu page that properly accounts for the use of such a named application (by referring to it as a hashtable in sprers.eu).

Finally, a more subtle explanation could be that CFML and sprers.eu files are being processed by different versions of the .NET framework. For instance, if CFM files are set in the IIS admin console to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, but the ASPX files are set to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, then these different versions will NOT share session variables.

Again, if your code is running in a virtual directory or its own web site, the configuration of these mappings may be set for that level, so be sure to check carefully.

BlueDragon
Admin Console, Known Limitations and Workarounds
Why can&#;t I register my Java CFX tags in BlueDragon .NET?
The .NET Framework does not support Java classes. Any Java programs must be recompiled using Visual J# (which is part of Visual sprers.eu). As such, BlueDragon/.NET does not support use of Java CFXs without their being recompiled in .NET (using the sprers.eu that is provided with sprers.eu).

See the CFX directory where BlueDragon/.NET is installed for more information on how to compile a CFX (Java or C++) for use with BlueDragon/.NET.

Also, see FAQ for more information on using C++ CFXs in .NET.

If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Also, the .NET Framework libraries may offer an alternative solution to the need.

If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may be able to work with the vendor to help them recompile the CFX for use with .NET. Contact us, or have them do so, at this account.

BlueDragon
Admin Console, Administration, Known Limitations and Workarounds
Why do the admin pages not display?
On some Linux systems (especially Debian and SuSE), installations of BlueDragon Server and Server JX may have problems with the display of the BlueDragon Administration Pages (e.g. http://localhost/bluedragon/sprers.eu). This problem is caused by failures to decrypt the admin page CFML templates. The primary symptom of the problem is the return of a page in place of the admin page which contains a stack trace caused by a "sprers.eualError: Unexpected exception in IJCE_sprers.euerTargets()". Also a number of "Netscape security model is no longer supported." messages will appear in "<BD-root>/logs/BlueDragon_sprers.eu".

Replacement of the installed version of "<BD-root>/jre/lib/ext/cryptixjar" with this patched version from the BlueDragon FTP site, will correct the problem.

BlueDragon
Admin Console, Supported Features
Why don&#;t I see any output trace information when using CFTRACE?
One of the new features in BlueDragon is support for CFTRACE, as introduced in CFMX. As in CFMX, it can be used such as in <cftrace text="sometext"> which can cause a line such as this to be written to the debugging output:

[CFTRACE ] [[pathtofile] @ line: 1] - sometext

This output will of course be shown only if debugging output is enabled in the BlueDragon admin console. But more than that, there is a specific option in the the admin console (debugging>settings page) labelled "trace points", which must also be checked. If "trace points" is not enabled, CFTRACE tags are ignored.

For those new to CFTRACE, note as well that output can be written to the page itself at the point of the CFTRACE (rather than in the debugging output) by adding INLINE="yes" as an attribute of the CFTRACE. This option also still requires that the debugging output (and trace points) options be enabled.

Note that this means that CFTRACE can be left in a page even in production, since they create no output if debugging is disabled.

Administration
BlueDragon
Administration
Can I move the BlueDragon for J2EE Servers work directory outside my application&#;s open directory or EAR/WAR?
Yes. In order to do this, edit the <param-value> sub-element of the <init-param> element whose <param-name> sub-element's value is BLUEDRAGON_WORKING_DIRECTORY to have an absolute path like the following: <init-param> <param-name>BLUEDRAGON_WORKING_DIRECTORY</param-name> <param-value>C:\bluedragon\work</param-value> </init-param> IMPORTANT NOTE: you must not use the same work directory for more than one Bluedragon for J2EE Servers application. If you have more than one BlueDragon for J2EE Servers application, consider using each application's context path as part of the path to its working directory.

NOTE: in addition to BlueDragon for J2EE Servers, this FAQ is applicable to BlueDragon, BEA Weblogic Edition.

Keywords: log, logs, work directory, working directory
BlueDragon
Administration, Profiling Servlets
Can I use FusionReactor with BlueDragon?
Yes.
It is possible to use FusionReactor [FR] with BlueDragon for J2EE Application Servers. Follow the Manual Installation steps given in the FR Installation Guide.

It is also possible to use FR with BlueDragon JX or higher (not older versions of BDJX). Detailed instructions for that combination follow:
At the time of this writing (August ), the FR Installation Guide is available from the FusionReactor Website.
From there click "FusionReactor" (along the top) and then "Online Support" (lower right). Then click the "Documentation" link under the "FREE Online Support" heading. That is where we found the link to the FR Installation Guide

The last section in that guide is entitled "Manually installing FusionReactor". It contains a subsection entitled "Overview" which you should read, but don't perform any steps yet. There are 2 other subsections that deal with Manually installing FR (one for Windows and one for Unix). Those "manual installation" subsections give the step-by-step procedure for "hooking" FR into a CFML-Enabled Servlet/JSP Engine.
If you are using BDJX then you should follow those steps as they are given but with the following exceptions/clarifications:
  1. In step #4, the "default web descriptor" for BDJX is: You'll copy the filter definition from the sprers.eu file into that default web descriptor as follows:
    1. Place your cursor at the start of the last line in that file (just before ).
    2. Paste the filter definition right there.
    Ensure that the path to the sprers.eu file is correct.
  2. In step #5, look over the entire contents of the sprers.eu file and make sure that all references to the FR installation folder are correct (they must all match where you actually unpacked the FR archive)
  3. In step #6, copy the sprers.eu file to the BDJX lib\ext folder.
  4. In step #7, you must edit the OPTIONS line in sprers.eu file so that line now reads (all on one line):

    OR you could optionally NOT edit the start script at all but rather copy the contents of the folder into a folder that is already listed in the value of the JVM System property (navigate to on the BDJX Admin UI to see that value).
  5. In our testing we found that FR is very picky about the syntax of the sprers.eu file. For example, we found that absolute paths needed to use forward slashes / rather than backslashes \. For example:

    And Note that the full colon in the sample above is correctly escaped with a backslash. This is necessary due to the fact that FR reads the sprers.eu file in as a Java Properties file. In our testing, we found that when sprers.eu contained file path syntax errors FR would output the follow sort of messages to the BlueDragon Server sprers.eu file:


NOTE:
FusionReactor does not work with any other edition of BlueDragon, including BlueDragon .NET Standard and BlueDragon .NET Enterprise.
BlueDragon
Administration, Profiling Servlets
Can I use SeeFusion with BlueDragon?
It should be possible to use SeeFusion with BlueDragon for J2EE Application Servers and BlueDragon, BEA WebLogic Edition. However, SeeFusion does not work with any other edition of BlueDragon, including BlueDragon Server, BlueDragon Server JX, BlueDragon .NET Standard and BlueDragon .NET Enterrprise.
BlueDragon
Administration, Supported Features
Does BlueDragon support the sprers.eueFactory in CFMX?
There is an undocumented API for CFMX which provides programmatic access to the Administration of the server, including listing and updating such information as datasources, mappings, schedule tasks, etc. We appreciate that developers want such a solution in BlueDragon.

Still, this ServiceFactory is not only undocumented but has been deprecated in CFMX 7 in favor of a new CFC-based api, we will not be offering any implementation of these identical undocumented ServiceFactory methods.

We had already begun creating a CFC to provide programmatic Admin access even before the CFMX 7 beta began, and we are still debating whether to proceed with and release that, or rewrite to follow CFMX 7's CFC component and method names After resolving this and related matters, we will make the CFC available as soon as possible.

In the meantime, if BlueDragon VAR partners or other customers have a desparate need for this functionality, we have an early version of our own admin api CFC available. Contact [email protected] if interested.

BlueDragon
Administration
Does BlueDragon work with Windows XP SP2?
Yes, it does. It's worth noting, however, that among the new security features in XP SP 2 is one that--if set--may make it seem that BlueDragon does not work.

In the new Windows Firewall feature (Start>Control Panel>Security Center>Manage Configuration Settings for Windows Firewall), be sure that the option "Don't Allow Exceptions" is not checked. If it it is checked, then the BlueDragon port will be blocked "silently" and BlueDragon won't work.

BlueDragon
Administration
How can I determine if my .NET web application is restarting too often?
If you find that requests for any page in a .NET web app (whether aspx or cfm) seem to be running slowly for every or many requests, one thing to determine is whether the "app domain" for the sprers.eu pages might be unloading due to some problem. (.NET defines each web site and each virtual directory as a web app, or technically an "application domain".)

There are various reasons that an application may be restarted, as discussed in the BlueDragon manual, "Deploying CFML on sprers.eu Servers", in the section "Automatic Stopping/Restarting of .NET Web Applications".

If some problem of unexpected behavior is causing .NET to unload the web app, then any subsequent request for a page after it's been unloaded will spend time trying to restart the app domain. This could cause a drag on execution of requests.

Fortunately, .NET tracks restarts by way of statistics that can be viewed with Windows Performance Monitor start. You can observe whether restarts are occruring by viewing the PerfMon tool. Open Performance (from Administrative Tools), then switch to "report view" (ctrl+r) (to see numbers, not charts), then "add" (ctrl+i) the appropriate counter. To get that counter, select the computer to be monitored, then for "performance object", choose "sprers.eu v" (assuming you are using the .Net framework), and choose "application restarts" and "add".

This will add a counter showing how often all or selected app domains restart. If it's a large number, then you have experienced many restarts since the server itself was started. You could run a small sample application (also provided in the documentation) to force an unload of the app domain, and again you should see the counter go up. (See the related section on the negative impact of application restarts on sessions.)

Note that you can also use PerfMon to set up alerts and logs instead to "watch" any of these counters.

BlueDragon
Administration, General Info, Installation
How do I start and stop BlueDragon Server?
BlueDragon Server and Server JX are just two of four editions of BlueDragon. As standalone editions, they run as a service or daemon that can be stopped/started, as discussed in the FAQ.

If you're a Windows user, you can restart BlueDragon through the Services Control Panel. Or, you can use the sprers.eu and sprers.eu found in the installation directory's bin folder.

If you're a Linux or MacOsX user, you will find a sprers.eu and sprers.eu in the BlueDragon installation folder's bin directory. (Use ./sprers.eu to run the stop script, for instance.)

For the J2EE edition, you can restart the BlueDragon WebApp as supported by whatever J2EE or servlet engine you're running. For the .NET edition, see the manual, "Deploying CFML on sprers.eu Servers" for more information on starting/stopping a BlueDragon .NET application.

BlueDragon
Administration, Web Server Support
How do I switch my .NET framework betweem .NET and .NET ?

Assuming you have both frameworks installed (and rebooted the machine afterwards), then from the IIS Manager you would open the Properties dialog for the IIS "component" (i.e. "level") you wish to switch. When I say "component" or "level" I'm referring to the fact that inside the IIS manager, it is possible to open the Properties dialog for 3 different "levels".

  • For ALL websites the node labeled "Web Sites" (whis is global for all sites)
  • The node for an indididual website
  • Or the properties for an individual Virtual Directory (VD) within a specific website

How you installed BD .NET (global in the GAC, for a specific website, or for a specific VD) will decide for which "level" you should open the Properties Dialog inside the IIS manager.

Once you have the properties dialog up, go to the tab labeled "sprers.eu" and select (from the drop-down list) the .NET version you want that "level" to use. Apply the change.
All of this so far is just .NET "stuff" and really has nothing to do with BlueDragon.

If using BlueDragon .NET then you could immediately go to the tab named "Home Directory" (or "Virtual Directory" if your "level" is a VD) on that same Properties dialog, and click the "Configuration" button and verify that your .cfm, .cfml, and .cfc mappings there are pointing to the correct version of the .NET framework.
Note that BD will not support .NET , it will only support .NET So BD won't support this sort of framework version "switching".
Also note that if you installed .NET *after* BD .NET was already installed, then certain BD-related components needed to support .NET were not installed (since .NET was not present at BD install time). So you'd need to uninstall BD and then reinstall it with .NET being present on the machine before BD could run on .NET

BlueDragon
Administration, Installation, Security
How does IIS determine which account sprers.eu requests run under?
The account that sprers.eu requests run under is determined by the following algorithm:

1) If sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests.

2) If sprers.eu doesn't contain an <identity> element and sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests.

3) If impersonation is disabled then:

  • with IIS 5 and earlier, sprers.eu will run under the user specified in the <processModel> element of sprers.eu The <processModel> element cannot appear in sprers.eu
  • with IIS 6, sprers.eu will run under the application pool identity of the application pool it is configured to run under.
The following sprers.eu code can be used to determine which user sprers.eu requests are running under: <%@ Page Language="vb" %> <html> <head> <title>Simple sprers.eu Page</title> <script runat="server"> Sub SayHello() sprers.eu( "Hello, " & sprers.eurent().Name ) End Sub </script> </head> <body> <% SayHello %> </body> </html>
BlueDragon
Administration, General Info
What is the difference between managed CFX tags and unmanaged CFX tags in BlueDragon .NET?
BlueDragon/.NET does not support unmanaged CFX tags. An unmanaged CFX tag is a C++ CFX compiled with a standard C++ compiler (in other words, have not been compiled to .NET). C++ CFXs can be recompiled to be "managed" using Visual sprers.eu (or more specifically, managed C++).

See the CFX directory where BlueDragon/.Net is installed for more information on how to compile a CFX (Java or C++) for use with BlueDragon/.NET.

Also, see FAQ for more information on using Java CFXs in .NET.

If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Also, the .NET Framework libraries may offer an alternative solution to the need.

If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may be able to work with the vendor to help them recompile the CFX for use with .NET. Contact us, or have them do so, at this account.

BlueDragon
Administration
When I try to run a page using sprers.eu, I get an error stating that &#;The resource cannot be found&#; and &#;The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. &#; But the web site is properly defined and points to the proper docroot. What gives?
The .NET framework is quite sensitive to the web site doroot being entered in IIS *without* a trailing slash. If you've defined the docroot to be c:\inetpub\wwwroot\, change it to just c:\inetpub\wwwroot.
BlueDragon
Administration, General Info
Why can&#;t I find a \config folder after installing sprers.eu?
The config folder for sprers.eu is not created until the first request. Try requesting sprers.eu
BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why didn&#;t BlueDragon find the IIS installation?
This a known problem for versions older than BlueDragon in which BlueDragon does not find the IIS installation because of a missing "Scripts" virtual directory and associated Windows Registry entry. This will be fixed in an upcoming release of BlueDragon This FAQ was written in

To workaround the problem, create a virtual directory named "Scripts" in the IIS configuration. This virtual directory typically points to the physical directory . After creating "Scripts", restart IIS. The restart is ABSOLUTELY NECESSARY since it creates a Windows Registry entry that BlueDragon requires. After the restart, restart or reinstall BlueDragon and it should recognize the IIS installation.

BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why doesn&#;t BlueDragon find my Apache installation?
The solution to this challenge depends on the edition of BlueDragon that you're running.

First, BlueDragon Server (free edition) only supports Apache on Linux. If you're running it on Windows, you will not be presented the opportunity to integrate with Apache, even if you have it installed.

If you're running the BlueDragon Server JX edition, consider the following:

In recent Apache for Windows releases (e.g. ), the installer allows a selection between installation for a specific user or as a system service. BlueDragon currently has some difficulty detecting this "specific user"/non-system installation and therefore does not allow the BlueDragon adapter to be installed.

However if the user used to run BlueDragon is changed to the same as used for Apache, BlueDragon will detect Apache and allow adapter installation. This requires that both Apache and BlueDragon be installed first, then the BlueDragon user changed to match that of Apache.

This is done using the following steps.

  1. From the Services control panel, select the "BlueDragon Server" (or "BlueDragon Server JX") service and then the properties icon.
  2. On the properties panel select the "Log On" tab.
  3. Next change the "Log on as:" setting from "Local System account" to "This account" and enter the account name that matches the account used by Apache.
  4. After "Apply"ing the changes, restart the BlueDragon service.
  5. An entry for the Apache server will now appear on the "web server adapter" page of the BlueDragon Administration Console and configuration can be completed.

Finally, if you continue to have challenges integrating with Apache, please see other FAQ entries that refer to Apache.

BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why doesn&#;t BlueDragon operate on the virtual hosts defined in IIS?
Symptoms of this occuring are that a request for a ".cfm" page will return the raw data which activates the browser "Save As" or "Enter file to save to" or "File Download" popup. These same symptoms may also occur for requests with the other extensions supported by BlueDragon including ".cfml", ".cfc", and ".jsp".

Prior to and including BlueDragon Server , the "Scripts" virtual directory was required to be defined for each virtual host within IIS. If not defined, the installed BlueDragon filter was not recognized and therefore ".cfm" pages not processed by BlueDragon.

After and including BlueDragon Server , this problem is most likely the result of the removal or replacement of the "Application Mapping" for ".cfm" in the virtual host definition. BlueDragon Server installs "application mappings" to ONLY the Master Properties of an IIS installation. These master properties may be overridden by "application mappings" defined for the specific virtual host.

DataSource
BlueDragon
DataSource, Web Services
I&#;m trying to set up an sprers.eu page to return a Datatable to a CFML page as a web service. I get an error in the ASMX page. What&#;s wrong?
If you receive any of the following errors .NET errors while trying to create/process a .NET web service (ASMX file), this FAQ applies to you:
  • sprers.euportedException: Cannot serialize member sprers.eu of type sprers.eu because it is an interface.
  • sprers.eulation cannot be serialized because it does not have a default public constructor.
  • Internal Server Error. Unable to request "http://
The problem, of course, is not a CFML (or BlueDragon) error, since it's happening in the ASMX page (the sprers.eu web service page). It's due to an error in .NET where datatables cannot be returned in web service calls. Since we show examples of passing datatables between CFML and sprers.eu, this problem may become apparentto those doing experimentation with sprers.eu web services.

The good news is that there is a Microsoft Technote explaining the problem. The bad news, again, is that you cannot pass a .NET datatable via a web service, because they are not themselves serializable. You can, however, return a dataset (containing the datatable). The technote shows very clear examples of how to solve the problem.

Their solution will indeed work. You just need to know how to grab a table out of the dataset, in order to process that in CFML.

If you use the example at the technote page, you could use the following CFML to obtain the "Authors" datatable within CFML (and of course, this would work for any code where the dataset contains a table, if you just name the proper table):

<cfset table=sprers.eu_tables().get_Item("Authors")>
<cfoutput query="table">

BlueDragon
DataSource, Known Limitations and Workarounds
Why can&#;t BlueDragon detect my Access odbc datasource on my bit machine?
Microsoft has not made a bit odbc driver for Access so you can only configure it using the bit odbc manager. If BlueDragon is launched as a bit app then it won't be able to see the bit datasources.
If you have a bit machine and you must use an Access ODBC datasource, the only solution is to install a bit Windows OS on your bit machine and then run BlueDragon's bit installer.
BlueDragon
DataSource
Why can&#;t I update an Access database with BlueDragon for the Microsoft .NET Framework?
When trying to update an Access database using BlueDragon/.NET, you may receive the error: "Operation must use an updateable query". This is a problem not caused by BlueDragon but instead the .NET framework. Indeed, the problem is discussed in the Microsoft Knowledge Base article, sprers.eu?scid=kb;en-us;

The simplest solution may be to edit the security properties for the MDB file (using Windows Explorer, right-click on the MDB file, choose properties, then the "security" tab). Add the sprers.eu acccount (or "everyone") as a user (choose "add", then "advanced", then "find now", and select "ASPNET" or "everyone"), and give that user "modify" and "write" permissions.

You could also set this security not just at the file (mdb) level but at the directory level, for the directory holding this file (or other files) that you want to edit in a .NET web application (such as BlueDragon/.NET).

If you have opened the file in a currently running instance of BlueDragon or ColdFusion (or Access) before making that change, you'll see that the directory where the MDB is stored will now have an LDB file of the same name. In this case, the change you've made won't take effect until you restart whatever app(s) had opened the file (which will release this LDB lock file and make it disappear). In the case of BlueDragon/.NET, you'd want to restart IIS (or restart the web application, as discussed in the BlueDragon/.NET documentation) to make that LDB file go away.

Once the file is gone, the change to security will take effect and the next refresh of the page doing the database update should work as expected.

BlueDragon
DataSource, Security
With sprers.eu, can a SQL Server datasource be configured to use a trusted connection (Windows Authentication)?
Yes this is possible but does require some configuration, due to security restrictions in .NET. Also, the changes required depend on whether IIS and SQL Server are running on the same machine. (You can also work-around this temporarily, which may make sense in some cases, as discussed at the end of this FAQ.)

If IIS and SQL Server are running on the same machine then follow these steps:

- determine which account sprers.eu requests run under as described in FAQ #
- make sure this user has permission to access the SQL Server databases
- when configuring the datasource be sure to set the Server Name field to "" and the Connection String field to "trusted_connection=true"

If IIS and SQL Server are running on different machines then you will need to use impersonation in IIS in order to use a domain account that can be seen by SQL Server. Refer to the following Microsoft knowledge base article for more information on impersonation:

sprers.eu

Be sure also to select an account that would have permissions on the server running IIS to write to the files that the user running .NET would have had, such as the .NET framework temporary directory location (which might be C:\WINDOWS\sprers.eu\Framework\v\Temporary sprers.eu Files), and the C:\sprers.eu directory. You could consider looking at what what groups have permissions to those directories and assign the selected user to that group.

Once you have IIS configured for impersonation then follow these steps:

- make sure the domain account used for impersonation has permission to access the SQL Server databases
- when configuring the datasource be sure to set the Connection String field to "trusted_connection=true"

Of course, keep in mind that if you're just getting started with configuring BlueDragon in a test environment and want to get things running as quickly as possible, you could also just enter the username and password rather than rely on the Trusted Connection feature (and go change that later before moving to production).

Debugging
BlueDragon
Debugging
sprers.eu is not performing as fast as I expected. What are some things I can do to debug this?
  1. The first thing you need to do is turn on debugging in Bluedragon Admin UI. Choose debug settings and check Debug Output in the first table. Then, choose Page Execution times in the second table. Can the slow-down be isolated to a particular page or function?
  2. If you can isolate the problem to a specific page, try using cftimer tag to narrow down the lag to a specific area in your code.
  3. Are there datasource connection issues? Look in Bluedragon Admin UI under Data & Search->Runtime state. Look at the value for Wait Connections for each DataSource connection pool. If Wait Connections is anything above zero, you need to increase your Max Connections value for that datasource. It is configurable in BlueDragon Admin UI-DataSources->Choose that Datasource and increase the Max Connections value.
  4. Look in sprers.eu located in your
BlueDragon
Debugging, Exceptions, General Info
Can I use FusionDebug with BlueDragon?
No, FusionDebug does not work with BlueDragon.
BlueDragon
Debugging
How can I troubleshoot a memory leak involving BlueDragon .NET?
  • Startup the Windows Task Manager and go to the "Processes" tab. Then check the checkbox at the bottom labeled "Show processes from all users". Then click the column header for the column named "Name" (to sort the processes alphabetically by name). Then look for processes named "sprers.eu" At the top of the Task Manager window is a menu from which you may navigate as follows:

    From there you can customize the list of columns to include a column for the PID.
    Note the PID of your sprers.eu process.
    If you have more than 1 w3wp process running you may need to turn off the App Pool that BD .NET is using and take note of which w3wp PIDs remain. Then turn it back on and take note of the newly listed sprers.eu PID (that would be the one in which sprers.eu is running).
    Be sure to configure that App Pool to never recycle itself.
    Then periodically (every day or so) take note of the memory usage of that PID.
    We've done this before for 8 consecutive days in a non-memory-leaking setup. Data collected during the first 7 days suggested an upward trend, but data on the 8th day confirmed that there was no leak. So you may need to watch this across many days to get the truth for your own system. It just depends on how often the .NET garbage collector runs on your system. The highest value we saw in our trivial test was 86, Kilobytes which is tiny and well within acceptable memory usage for an IIS Application Pool
  • IF you can confirm that the memory *trend* of your PID across many days and or weeks is always up (and definitely not down) then please use this information to obtain a memory dump of the running Application Pool process (use the PID) and then please send us that dump.
    We are happy to analyze it here.

    Please know that if the PID memory usage trend is *not* upwards then analyzing a dump would not be useful. The process would need to be in a clear state of "heading towards OutOfMemory" so that the problem could be clearly picked out from the dump. In fact the more "out of balance" the process is the better it would be for analysis purposes.
  • Another tool that could be used to gather data about a running Application Pool process (sprers.eu) is the Microsoft Debug Diagnostic Tool v It can be used to both generate and analyze a dump of most any Windows process.
BlueDragon
Debugging
I&#;m running BD .NET and seeing a &#;generic&#; .NET error response in my browser that&#;s not too helpful. What&#;s wrong?

One example of such a response is:



You can configure your .NET webapp (BD-enabled or not) to possibly give a more useful error message by adding:

to the sprers.eu file of your .NET webapp, or to the sprers.eu file.

NOTE:
BD (all configurations, not just .NET) never catches "Throwable" even if your CFM pages contains a <cfcatch> whose . In that scenario, BD catches BD-defined Exceptions, and sprers.eueException.
That means that if the Exception or Error is some other one such as a JVM-specific one (or a .NET framework-specific one), or one that's specific to certain operations such as an XML Parsing Exception, or perhaps one that's thrown by the "Container" such as the .NET Framework or Sun's JVM then cfcatch won't catch it.
The reason is because BD makes calls to the APIs provided by either .NET or the JVM, and those calls may throw errors/exceptions that don't relate to the CF world. In that case, it's not caught by BD, it bubbles up to the "Container" inside which BD runs.
At that point it's out of BD's hands.
This is why you'd see a "generic" .NET error (or JVM error) in the first place and also why you'd want to turn customErrors off in the .NET webapp so that the .NET framework won't hide the true problem from you.

BlueDragon
Debugging, General Info
My memory usage is running very high and escalating in BD JX. This is causing my performance to lag. What should I look for?
This could be caused by a very large number of cached queries. Your cache count may be at the max, which by default is In BlueDragon Admin Console-Application->Caching you will see a value for Queries in Cache. If this value is at its maximum, you should either edit your sprers.eu to increase this value, or you should consider whether your application needs debugging to reduce the number of queries you are caching. If you choose to increase the value of <cachecount>, simply add this element under the <cfquery> element and try changing the size to <cachecount></cachecount>
In BlueDragon 7.X versions, you can edit your cache size in BlueDragon Admin ->Application ->Caching. No manual edits to the sprers.eu are required for newer version of BlueDragon.
BlueDragon, ServletExec
Debugging
What is DBMON and how do I use it ?
DBMON stands for Debug Monitor.
New Atlanta does not make DBMON.
DBMON is a debugging tool created by Microsoft which has been bundled with Windows installations of ServletExec. It captures and displays program output from programs that are written to do this. Both ServletExec ISAPI and ServletExec NSAPI on Windows are written to do this, they will send any sprers.eun() output to both DBMON and sprers.eu
If you are running SE AS (out-of-process version of SE) then you'll find that your output emitted by your Servlets and JSPs is not captured by DBMON. This is because DBMON is a native (non-Java) program, and it cannot capture output that comes from a java program. Any output that you see in DBMON must have come from a native program. The only time that you would ever get to see your output emitted by your Servlets and JSPs, captured in DBMON is if you were running a version of ServletExec which runs in-process with the web server (ISAPI or NSAPI), because then the SE Java code can make a native callback to tell the native webserver to output the message to DBMON.
DBMON is discussed in the "Developing Servlets" chapter of the ServletExec User Guide (for example, in the SE User Guide this is section ). If you have program output in DBMON that you need to copy to your clipboard, here is how you do this:
  1. In the upper-left corner of the DBMON window, left-click the C:\ icon once.
  2. From the pulldown menu choose Edit - Mark
  3. Now highlight the DBMON output you wish to put on your clipboard
  4. Hit Enter on your keyboard to place the text on your clipboard
  5. Paste the captured output to an email or text file or wherever you wish.

Note that DBMON will not show you anything if you are accessing the machine remotely via terminal services or possibly other remote access software. This is a limitation of DBMON. In this case you would need to examine sprers.eu to see the messages. sprers.eu has the added benefit of timestamps for each entry, DBMON output does not provide timestamps.

Another debugging tool which works similar to DBMON but also works when run remotely is DebugView. DebugView is freely downloadable from:
sprers.eu

If the above link does not lead you to the DebugView download page, then please be aware that Microsoft appears to be the new owner of DebugView. You might find it here.

Note that in our testing with remote use of DebugView we found that we had to enable Global Win32 from the capture menu in order to see any generated output remotely and we found that we had to do that twice before that setting would actually "stick".
BlueDragon
Debugging, Exceptions
When I run a .NET page, I get a .NET &#;Configuration Error&#; stating that &#;It is an error to use a section registered as allowDefinition=&#;MachineToApplication&#; beyond application level.&#; What&#;s up with that?
This error generally indicates that you've got code in a directory that's not been defined to .NET (by way of IIS) to be an "application". Some xml directives in the .NET sprers.eu file cannot be run in a simple directory, and can only be executed in an "application" root (whether a web site root, a virtual directory root, or an application declared in IIS to be an "application").

To solve this problem, declare the directory to be an application. This notion of declaring a directory is discussed further in the manual, Deploying CFML on sprers.eu.

BlueDragon, JTurbo, ServletExec
Debugging, General Info, Installation
Where are the Interest List Archives for ServletExec, JTurbo, and/or BlueDragon?
It is no longer possible to post new messages to the Interest List Archives for any of New Atlanta's products as they have been replaced with the New Atlanta Product Forums. However, it is is still possible to search the Interest List archives for answers to previously asked questions using the links below:
Each of the Interest List archives represent years of details technical information and are an extremely valuable tool in solving various issues that you may encounter.
Exceptions
BlueDragon
Exceptions, General Info, Installation
I get NoClassDef and other errors trying to process images on BlueDragon Server or Server JX on Linux systems. What&#;s wrong?
The problem generally is related to running the Linux system in "headless" mode. See the BlueDragon Server and Server JX Installation Guide, and the section "Graphics Rendering Operations on a Headless Linux System" for more information and a possible solution.
BlueDragon
Exceptions, Supported Features, System Requirements
I&#;m having problems using CFMAIL in the BlueDragon/J2EE edition on some servers, such as Tomcat 5. What does &#;NoClassDefFoundError&#; mean?
If you attempt to use CFMAIL when deployed on Tomcat 5 (and Jetty, it seems), it will fail with a NoClassDefFoundError. The problem is that Tomcat 5 simply doesn't include the necessary javamail (and "beans activation framework") libraries that CFMAIL relies on.

You can obtain these libraries (jars) from sprers.eu, then move the needed sprers.eu and sprers.eu files into the the WEB-INF/lib directory a your web application (and restart your web application). If you want to solve the problem for all web applications, you need to move it to the appropriate place for the J2EE server/servlet engine you are using.

For Tomcat 5, you can place it into either the $CATALINA_BASE/shared/lib or the jre/lib/ext folder of the JDK location being used by Tomcat (or other J2EE servers).

(Appendix I of the "Deploying CFML on J2EE Servers" manual in the documentation set incorrectly states that the sprers.eu and sprers.eu can be found in the WEB-INF/opt directory of the BlueDragon web app. That is not true.)

You can also find more on these issues at:

BlueDragon
Exceptions, General Info, Known Limitations and Workarounds, Miscellaneous
What sort of configuration edits are needed with sprers.eu to allow large uploads with IIS7?
If you are trying to upload a large file using sprers.eu on IIS7, you may get an error:

HTTP Error - Not Found
The request filtering module is configured to deny a request that exceeds the request content length.

In sprers.eu, find the requestfiltering element and add:

<requestFiltering>
<requestLimits maxAllowedContentLength="" />

Note that the value for maxAllowedContentLength is in bytes.
After you get past this error, you may then get a different http error: Maximum request length exceeded.
You should open sprers.eu and add:
<httpRuntime maxRequestLength="" />
as described in BlueDragon FAQ This value is in kilobytes.
BlueDragon
Exceptions, General Info
When I try to use a cfchart tag in IIS, I can&#;t get the image to display. How do I resolve this?
First, check your extension mappings in IIS and make sure that .cfchart is correctly mapped to \BlueDragon installation\bin\isapi\BlueDragon_sprers.eu Extensions are mapped in IIS Management\Web Site Properties\Home Directory tab\Configuration button.
Second, highlight .cfchart extension and choose the Edit button. Make sure to UNcheck the option 'Check that File Exists'.
General Info
BlueDragon
General Info
Are there any hosting providers offering BlueDragon?
Yes, there are now several companies offering BlueDragon hosting. Visit our TrueBlue Partner Directory for a list of our hosting partners. If you are interested in becoming a hosting partner (or want to recommend it to your hosting provider), we offer a generous hosting partner program.
BlueDragon
General Info, Installation, Web Server Support
BlueDragon is not working on my Windows machine. I get &#;The system cannot find the path specified&#; error. Would a previous installation of CFMX be a factor in this problem?

The CFMX installer creates a "WildCard Application Mapping" in IIS 6 (and even leaves it there after an uninstall of CFMX!).
This effectively blocks requests from ever being passed to BlueDragon.
IIS continues to pass requests over to a CFMX installation that's not there anymore (yuck!)
Solution:
Look in your IIS management and remove any wildcard application mappings to ColdFusion.

Here is one way to make that configuration change (with IIS 6 for example):

  1. Right-click on "My Computer" and choose "manage"
  2. In the lower-left corner, expand the "Services and Applications" node
  3. Expand the "Internet Information Services" node
  4. Right-click the "Web Sites" node and open it's Properties
  5. Go to the "Home Directory" tab
  6. Click the "Configuration" button
  7. At the bottom of that dialog, select and remove any Wildcard mappings.

With the wildcard in place, all requests are still being routed to CFMX "jrun_iis6_sprers.eu".

BlueDragon
General Info
Can I generate an Excel spreadsheet from BlueDragon?
Yes, it's long been possible to generate Microsoft Excel files from CFML. Excel has a feature that allows an HTML table to be turned into a spreadsheet, so it's simply a matter of using CFML to produce the desired table, then using CFCONTENT to indicate that you're generating a file that should be processed as a spreadsheet. The spreadsheet will open either embedded in the browser or by opening Excel, as determined by the configuration of the user's machine.

Following is an example. Simply copy and paste the CFML below into a CFML page on your server to test, then change to suit your own needs.

And if you're interested in doing the same thing but without need to name each column (just want to dump all the columns in the CFQUERY), use this code instead to replace the table-generating tags at the very bottom of the example above:

BlueDragon
General Info, Known Limitations and Workarounds
Can I generate charts and graphs in BlueDragon?
Yes, this can be done using the CFCHART tag which was added to BlueDragon
BlueDragon
General Info, Known Limitations and Workarounds
Can I generate PDFs in BlueDragon?
Yes, it's possible right now to generate PDFs in BlueDragon, any number of ways. Some are commercial products, though with free trial editions. Others are free but require slightly more work, typically using CFOBJECT to call a Java library.
  • CF_PDF, a free custom tag which generates PDF. Sample code is included in the comments for the custom tag. Note that its FILE attribute requires a full path to the output file to create.
  • CFX_PDF, a commercial tag which, while currently protected using CFENCODE, will soon be available using BlueDragon approach to protecting code. Contact Charlie for more information.
  • FOP, a free Java library for generating PDFs among other things. The link provided is to a CFDJ article on integrating it with CFML. See the "feedback" link at the bottom of the article to find comments made by New Atlanta CTO, Charlie Arehart, on how to integrate that approach in BlueDragon.
  • HTML2PDF, a commercial solution (which is based on HTMLDOC
  • iText, a free java library which can be used and called from within BlueDragon CFML pages using CFOBJECT

It may be useful to note, as well, that if you already have a PDF and want to fill it in using the FDF feature of PDF, you can do that from within CFML, as this tip explains (thanks Dale Smith for pointing that out).

Additional FAQs or docs may be developed to expand on the details of using one or more of these alternatives.

Additionally, see FAQ for more information on adding CFMX 7's specific tags for supporting features like PDF generation. But as this FAQ explains, you don't need to wait for that if you need these features now.

BlueDragon
General Info, Supported Features
Can I really bundle BlueDragon with my CFML application, to sell it as a solution, with BlueDragon costing me less than the list price?
Yes, indeed. We do permit you to distribute a CFML application bundled with any edition of BlueDragon for commercial deployment use. While you must obtain a redistribution license from us to this, the amazing thing is that you may not need to pay the full price for BD to do this.

Consider a ColdFusion developer who wants to somehow bundle their CFML app with ColdFusion: they'd traditionally expect to have to pay $1,, per deployment. If you want to do of these, for some product that you want to sell for $, or even $1,, the economics just won't work, because you have to add in the $1, for CF. (And if you wanted to deploy on a J2EE server, with CFMX the cost for the Enterprise edition that permits this is $5,). Now, our pricing page shows that the list price of BlueDragon is already less than CF.

But if you want to bundle (or we call it redistribute) your CFML app using BlueDragon (any edition, from the standalone Server edition to the J2EE edition or even our .NET edition), you may not have to pay anywhere near the full retail price. of BlueDragon

Instead, the payment can be a royalty based on your product's sales price. The percentage is surprisingly low (but obviously if you have a $ product, it means you won't be paying any more than $ per license). That's not a typo. Now you're product no longer costs (your price + price of ColdFusion) but instead (your price + a percent of your price, for BD). Of course, if your product price is so high that even the percentage exceeds our list price, then you won't pay any more than the list price.

We figure you're helping sell BD into places we never would--and we restrict the use of BD in this arrangement so it's only to be used to run your app, not any other your customer might want to build.

If the idea interests you, please contact our Sales team.

The bottom line is that we want to help you succeed and build a business based on your CFML skills and applications, where you might previously never have even thought of it.

Protecting Your Code: Note, as well, that you can protect your code so that your clients cannot look at your CFML source, and it's not just an encoding as the CFCRYPT/CFENCODE utility required. We call it "precompiling" code, and you can apply the protection to some or all of your CFML templates (in case you need to leave some of your code unprotected for the end-users to edit). You can learn more about this at a FAQ of ours, Can you explain more about the possibility of encrypting and precompiling templates in BlueDragon. This is another way in which those packaging a CFML app can find entirely new markets, or can lower their price because they previously priced it high to protect against loss of their intellectual property.

Expiring Your Code as a Trial: Still another great opportunity for deploying your CFML as a bundled application is that BlueDragon offers something ColdFusion never has. Using the precompiled templates feature discussed above, you can now also set an expiration date for your code. Note that this is not an expiration of the BlueDragon engine, but just of your code. And again, you can expire some or all of your code, as needed.

BlueDragon
General Info, Installation
Do I have to pay to evaluate BlueDragon? Does BlueDragon offer trial and free development editions?
All editions of BlueDragon are available for free evaluation, and for ongoing single-IP development use beyond that evaluation period. There are 4 editions, and this FAQ discusses each.

sprers.eu

The sprers.eu edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

BlueDragon Server JX

The BlueDragon Server JX edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

BlueDragon Server

The BlueDragon Server edition has no trial or developer edition, because it's free for production deployment, subject to licensing restrictions. See the BlueDragon License Agreement for details.

BlueDragon J2EE

The BlueDragon J2EE edition starts out as a single-IP developer edition (because there is no installer, so no means to create a trial license key). Instead, an email will be sent to the downloading user which will offer a day trial license key.

Converting to a Fully Licensed Edition

Finally, note that all editions can be converted to a fully licensed edition simply by obtaining and implementing a valid production license key (using the BlueDragon Admin console). See FAQ for information (and a warning) about updating the current trial/developer license key.

Does BlueDragon Charge for Use on Shared Testing and Development Servers?

Contact BlueDragon Sales to discuss options for testing and shared development servers.
BlueDragon
General Info, Version differences
Does BlueDragon/.NET support .NET ? How about SQL Server ?
While .NET and SQL Server are still in beta, they are not supported formally in New Atlanta products. We've tested BD/.NET on .NET and while some features work, there are known issues that make it unusable for production. We've not done any testing with SQL Server and BlueDragon. When .NET and SQL Server are released by Microsoft for production use (beyond the "Go Live" license option), we'll support them with BD/.NET. Until then, they're not formally supported.
BlueDragon
General Info, Version differences
Does New Atlanta plan to support the features in CFMX 7 in BlueDragon?
Yes, New Atlanta is investigating features to be added for our BlueDragon 7 release, scheduled for later in Whether and when we implement specific ColdFusion ® MX 7 features will be determined by the reaction of the overall ColdFusion community to the new features and--most importantly--the feedback we get from BlueDragon customers and prospects.

It's worth noting that some features added in CFMX 7 (and ) are things that BlueDragon has long had:

  • sourceless deployment (we've had it since BlueDragon , and we've added an expiration date enhancement in )
  • deployment on OS X in standalone mode (we've had that since )
  • standard WAR file deployment, with no post-deployment wizard (since )
  • passing XSTL parameters on XMLTransform() (since )
  • proper support of sprers.eu_info (see this BlueDragon blog entry)
  • and more
Still, we realize people are looking for some of the things CFMX 7 has added which BlueDragon still has not.

Note that many of the features can be made available now on BlueDragon (and indeed ColdFusion MX 6) by way of calls to underlying Java libraries or tools that CFMX 7 merely wraps up into tags. This may permit some to enable the functionality on their own at least until we determine which we will add and when we will add them.

For instance, PDF generation in CFMX 7 is done using the iText java library and related tools, which can be called from within CFML using CFOBJECT. The reporting is done via JasperReports, also callable right now from CFML. (For those interested in Reporting solutions, see FAQ ).

And the Flash forms feature leverages a subset of Flex (Macromedia's XML-based Flash generator) which has been embedded into CFMX 7. While we won't be embedding Flex into BlueDragon (the licensing costs would be prohibitive), most of the same kind of components can be generated using OpenLaszlo, another XML-based Flash generator that actually predates Flex. That can be used with BlueDragon right now, and we are investigating bundling Laszlo into BlueDragon in the future. Laszlo Release 3 adds still more powerful capabilities that we hope to leverage. See FAQ for more information on integrating BlueDragon and Flash today.

Further, many may not really want *Flash* forms particularly, but just more effective user interfaces (grids, calendars, accordions, and such) without complicated programming and without reliance on Java (as CFFORM does prior to CFMX 7). Many of these interface controls are available in a variety of free and commercial packages, which can be easily integrated into CFML (and those using sprers.eu can leverage sprers.eu's powerful forms features). Also, many of those leverage Ajax functionality, which can certainly integrate with CFML on BlueDragon. Look for more information to come from us on these possibilities. In particular, see this blog entry on a unique option available right now.

As for the Event Gateway, New Atlanta had started work on an equivalent feature and stopped when we heard CFMX 7 would add one. Like other feature, we want to wait and see what the community (and our customers) think of the various approaches Macromedia has followed in adding these features, so that we give our customers the best experience and the greatest value.

As for the sprers.eu, that's something that can be simulated using the event handlers of the servlet API (on Servlets compliant engines) or via the sprers.eu file on .NET.

If you wish to express an opinion for features you're interested, you can contact [email protected]

BlueDragon
General Info, Installation, System Requirements
How can I determine whether service packs are installed on the .NET Framework?
Microsoft has written the following Knowledge Base article to help customers answer this question: sprers.eu
BlueDragon
General Info
How can I get the Macromedia Example applications to run with BlueDragon?
The Macromedia example CFML applications (which come with CF4, 5, and MX) can be used to demonstrate CFML running on BlueDragon. We do not provide these examples, but if you have installed ColdFusion 5 or MX on your machine, and you chose to install the example applications, they can be found at /cfdocs/exampleapps/sprers.eu in your web site's document root.

If you do not already have a datasource defined for ExampleApps, create one and point to the database file as appropriate for your operating system. In the case of CF5 on Windows, the sprers.eu can be found in C:\CFusion\database. For CFMX on Windows, it can be found in C:\CFusionMX\db.

The CF 5 examples will for the most part run unchanged.

On CFMX, the examples do require a change to one file to remove reference to the undocumented sprers.eueFactory class which BlueDragon does not support. See /cfdocs/exampleapps/global_sprers.eu, which is included from the exampleapps/sprers.eu file. You can comment out all the CFSCRIPT lines following

sprers.eu = "ExampleApps";
and then ensure just the following lines are not commented:
sprers.eu = "ucase";
sprers.euss = true;
If you're not on Windows, then the values should be:
sprers.eu = "ucase";
sprers.euss = false;
Other than that, most of the examples will run, which is a useful way to demonstrate standard CFML running on BlueDragon. Some of the examples do use tags or functions that are not supported. See the BlueDragon CFML Compatibility Guide for more information on unsupported CFML features.
BlueDragon
General Info, Known Limitations and Workarounds, Miscellaneous
How can I upload a file to my .NET webapp (BD-enabled or not) that is larger than 4 Mb?
In .NET, there is a default limit on the size of any web request of about 4 Mb. This is defined in the sprers.eu file. If you need to accomodate larger requests, you can override the setting in your website's own sprers.eu file by putting this tag inside the "sprers.eu" section, like this (for example):

Note, that the number is in Kilobytes, so 80, represents 80 Mb.
BlueDragon
General Info
How do I enable clustering in BlueDragon .NET ?
In order for Session scope variables to be shared across the cluster, two things need to be done:

1. sprers.eu needs to be configured to use State Server or SQL Server sessions.
2. sprers.eu needs to be configured to use sprers.eu sessions.
BlueDragon
General Info, Security
In IIS7, my application pool is running under ApplicationPoolIdentity. How can I give this user file permissions when it doesn&#;t show up as a User?
You can add the app pool identy from a command prompt like this:
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
Then, you can edit the security permissions through Windows Explorer.
BlueDragon
General Info, System Requirements, Web Server Support
In the .NET edition of BlueDragon, I find that while I can run my CFML pages, when I try to access the BlueDragon Admin console I get &#;file not found&#; errors. What gives?
The problem here occurs if you manually configure the IIS mapping page to set the file extensions (like CFM and CFC). There is an option there, called "check that file exists", which is enabled by default when you add a new mapping. You must turn that feature off. The BlueDragon admin console pages do not really exist (as explained in the documentation), so enabling this option causes the error.
BlueDragon
General Info, Installation, Known Limitations and Workarounds, Product Requirements
Is BlueDragon supported on CentOS?
Yes, although CentOS is not fully supported. We don't test on CentOS but understand that it is directly derived from RedHat Enterprise Linux, which we do support. This choice of platforms may result in some problems which we cannot predict nor possibly resolve.
BlueDragon
General Info, Known Limitations and Workarounds
Is it true that Microsoft is retiring its Visual J# product? If there are no future development plans for Visual J#, how will this effect BlueDragon .NET?
Microsoft is supporting Visual J# through , as stated on their web site:

sprers.eu

Visual J# and sprers.eu are fully supported on bit and bit editions of Windows Vista and Windows Server (sprers.eu was one of the first software products to receive Windows Server logo certification).

Our plans are to re-engineer sprers.eu to remove the requirement for Visual J# prior to the release of the successor to Windows Server

BlueDragon
General Info
The application pool that sprers.eu runs under is configured to shutdown under certain conditions. On low traffic sites this causes things like scheduled tasks to not run until the site receives another request. Is there a way around this problem?
The best solution is to configure the application pool to not shutdown under certain conditions. This is done by right-clicking on the application pool and selecting properties. On the Recycling tab, uncheck the first three check boxes. On the Performance tab, uncheck the Idle timeout check box.

You can also place the following code in the Application_End() method of sprers.eu so when sprers.eu is shutdown it will immediately be brought back up:

sprers.eubRequest req = (sprers.eubRequest)sprers.eu("http:///sprers.eu"); sprers.eubResponse rsp = (sprers.eubResponse)sprers.euponse(); sprers.eu();

Note that the above change will only help with application pool recycles. If the machine is restarted then the site won't come back up until it receives a request. The workaround for this is to create a Windows scheduled task that runs at start up time and sends a request to the site.

BlueDragon
General Info
Why can&#;t I get my cfml pages to be served from a shared network drive? I keep getting File Not Found.
The "File not found" reported by BlueDragon Server is due to its inability to access the CFML templates on the remote share that is configured as the IIS home directory. Just as IIS had to be configured with credentials (an account and password) to access this remote share, so must BlueDragon Server. By default, the BlueDragon Server service is installed to run using the "Local System" account. This account must be changed to one who is authorized to access the remote files using the "Log On" tab of the service's properties. Setting it to the same account as used within IIS is recommended.
BlueDragon
General Info, Security
With sprers.eu, can the CFLDAP tag be used with SSL?
The CFLDAP tag can be used with SSL using the following steps:
  1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
  2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
  3. Install the LDAP server's certificate into your computer's certificate store. This is described at sprers.eu

If you don't install the LDAP server's certificate in your computer's certificate store then you'll receive the following General Runtime Error:

sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

BlueDragon
General Info, Security
With BD/Java, can the CFLDAP tag be used with SSL?
The CFLDAP tag can be used with SSL using the following steps:
  1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
  2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
  3. Install the LDAP server's certificate in the database of trusted certificates for the JRE being used by BD JX or BD JEE. This is done from the command line using the following steps:
    • cd JAVA_HOME/lib/security
    • if JAVA_HOME/lib/security contains a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
      • keytool -import -file ldap_server_sprers.eu -keystore jssecacerts
    • if JAVA_HOME/lib/security doesn't contain a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
      • keytool -import -file ldap_server_sprers.eu -keystore cacerts
  4. Restart either the BD JX service or the application server that BD JEE is running behind so that BD will pick up the changes made to the database of trusted certificates.

For example, if BD J2EE is running with JDK on Windows then the value of JAVA_HOME for the JRE would be: C:\Program Files\Java\jdk\jre.

If you don't install the LDAP server's certificate in your JRE's database of trusted certificates then you'll receive the following General Runtime Error:

sprers.euicationException: simple bind failed: sprers.eu [Root exception is sprers.eudshakeException: sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target]; ROOT CAUSE=sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target

If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

sprers.euicationException: simple bind failed: sprers.eu [Root exception is sprers.eueption: Unrecognized SSL message, plaintext connection?]; ROOT CAUSE=Unrecognized SSL message, plaintext connection?

HTTP Connections
BlueDragon
HTTP Connections
What does BlueDragon do with HTTP authorization headers?
BlueDragon puts HTTP authorization headers into the sprers.eu_AUTHORIZATION variable.
BlueDragon
HTTP Connections, Known Limitations and Workarounds, Miscellaneous
Why do I get the error, &#;BlueDragonRunTimeEngine License Manager : This product is not licensed for this request&#;?
This error means you're running BlueDragon in developer mode and trying to trying to access a CFML page from other than the machine on which it's installed (or at least, BlueDragon thinks that's the case, more on that in a moment).

BlueDragon is available as a developer edition, which allows you to test it without expiration, but it's limited to accept requests only from the server on which it's installed. (You can request a license key for a day trial that removes that limit, or you can purchase a license. In either case, you can place the license key into the appropriate place offered in the BlueDragon Admin console or sprers.eu file.)

So if you're trying to browse CFML pages and your request is coming from other than the server on which BlueDragon is installed, you can:

  • browse the pages from the server on which it's installed
  • use terminal services or SSH, etc., to connect to the server on which it's installed and browse pages from there
  • or install a trial or production license key

Finally, note that the problem may also be you ARE trying to run it from the server on which it's installed but in your URL you're using something other than or localhost. For instance, if your machine is called "test", you may find that using that in the domain name still fails. Try changing to use either localhost of

Installation
BlueDragon, JTurbo, ServletExec
Installation
An InstallAnywhere-based installer (or other program) won&#;t run on my Windows machine. Why?

First, you should read FAQ # to see if it applies in your case. That FAQ was written with JTurbo in mind, however it may very well apply to any InstallAnwhere-based installer running on Windows , so if that's your case you should try that FAQ first (even if you're not using JTurbo).
If it does NOT apply, or it DOES apply but does not cure the problem, then the problem may be due to an operating system feature that's new in Windows SP1 & Windows XP SP2. That feature is called Data Execution Prevention (DEP). It serves to prevent viruses and other malicious code from ever executing.
Programs that Windows deems to be malicious are stopped cold, and not allowed to run at all.
It's possible to configure DEP so that it excludes certain programs, leaving them alone to do as they wish. To populate the list of applications that DEP will allow to execute, navigate to:

That's where you should add the program(s) you wish DEP to leave alone.
If the program that you add to that list is an installer, then after you successfully install you may want to consider adding that program's uninstaller to the list also. That way its uninstaller will be allowed to execute should you or someone else ever need to uninstall the product.

Here is a more detailed description of how to find the DEP settings plus more information about them:

Open the System Properties dialog:

  • For a Win XP sp2 machine, one way to bring up this dialog is to go to My Computer and click "View System Information".
  • For a Win sp1 machine, one way to bring up this dialog is to go to the Control Panel, and choose System.
Once there, go to the Advanced tab. Click the button labled "Settings" in the category/group labeled "Performance". This brings up the "Performance Options" dialog. Go to the "Data Execution Prevention" tab of that dialog. There are two options for DEP:
  • Turn on DEP for essential Windows programs and services only
  • Turn on DEP for all programs and services except those I select
In our experience, having the 1st option selected alleviates all DEP-related problems from occuring on the machine. The Win XP Professional Help dialog had this to say about DEP:
Data Execution Prevention (DEP) helps prevent damage from viruses and other security threats that attack by running (executing) malicious code from memory locations that only Windows and other programs should use. This type of threat causes damage by taking over one or more memory locations in use by a program. Then it spreads and harms other programs, files, and even your e-mail contacts. Unlike a firewall or antivirus program, DEP does not help prevent harmful programs from being installed on your computer. Instead, it monitors your programs to determine if they use system memory safely. To do this, DEP software works alone or with compatible microprocessors to mark some memory locations as "non-executable". If a program tries to run code?malicious or not?from a protected location, DEP closes the program and notifies you. DEP can take advantage of software and hardware support. To use DEP, your computer must be running Microsoft Windows XP Service Pack 2 (SP2) or later, or Windows Server Service Pack 1 or later. DEP software alone helps protect against certain types of malicious code attacks but to take full advantage of the protection that DEP can offer, your processor must support "execution protection". This is a hardware-based technology designed to mark memory locations as non-executable.
By default, DEP is only turned on for essential Windows operating system programs and services. To help protect more programs with DEP, select Turn on DEP for all programs and services except those I select.

If none of this helps you then you may find the following information to apply in your case:



Some possible workarounds or ways to try to solve this problem include:
  1. Run the installer on another machine and then copy the installed folders to the target machine. Since JTurbo is really just a set of JARs (often only 1 JAR is needed/used by people sprers.eu) and a set of examples and documenation this is fine to do.

  2. OR
  3. Try running the installer on the problem machine but either:
    • uninstall the JVM there first and maybe reinstall a different JVM version before trying to run the installer

    • OR
    • try running the installer from the command line as described in section of the JT Installation Guide (this involves holding down the control key) Or perhaps do so by typing the name of the installer on the command line (not double-clicking) and passing the "-i console" option or maybe even the LAX_DEBUG=true option or maybe even the LAX_VM option as Macrovision describes on their webpage
BlueDragon
Installation, Supported Features
Does BlueDragon run on or at least support integration with iSeries systems (formerly known as AS/&#;s)?
BlueDragon can both run on and/or integrate with iSeries systems.

First, as far as running CFML on iSeries, you can do that with our J2EE edition. (You can also integrate CFML with iSeries resources using our other editions of BlueDragon, Server and Server JX, as will be discussed later). The J2EE edition runs on any J2EE server or servlet engine. IBM's own WebSphere runs on the iSeries platform (see sprers.eu), and there may be other servlet engines/J2EE servers that run on it as well.

Deploying CFML on J2EE is very easy with BlueDragon. Our documentation on the subject, "Deploying CFML on J2EE Application Servers" is available on our web site in the docs page of our self-help area. Also, our CTO, Charlie Arehart, did an article in the April ColdFusion Developers Journal called, "Making the Case for CFML on J2EE". It's available on the CFDJ site at sprers.eu?storyid=&DE=1.

There is also the possibility to integrate from CFML to iSeries data, applications, and components.

First, as may be obvious, you can connect to databases on iSeries using ODBC or JDBC. This (and connecting to applications) is covered in the Dec CFDJ article, "MX to iSeries Demystified", available at sprers.eu?storyid=&DE=1. While the author (and the title) suggest it's somehow CFMX-specific, it is not.

As he notes, to connect via ODBC you need the "Client Access for iSeries" tool which is a licensed program from IBM. But you can use it, and he shows how to set up datasources in ODBC and JDBC to connect using that. This would work in BlueDragon as well.

But he also points out the available JTOpen open source driver from IBM, and if you dig into that, you'll learn (at sprers.eu#how) that it can link to more than just databases but also the file system, programs, commands, data queues, printers, jobs, messages, and lots more. The CFDJ article explains how to get and use the tool, and the steps are pretty much the same in BlueDragon.

Still another couple of ways that he doesn't mention are possible, and they're generic to CFML (whether running on BD or CF): you can call Enterprise JavaBeans (running on any J2EE server) using CFOBJECT. Also, you can call a web service on any server using CFINVOKE (and CFOBJECT). These are two generic ways CFML can call any enterprise object on another platform, and they're a powerful possibility for greater enterprise integration. These latter two approaches don't require that you necessarily be running the CFML on the same server as the iSeries.

So as you can see, beyond just running the CFML on iSeries, you may also open tremendous doors of possibility for integrating your CFML with iSeries. We're happy to help you as you explore these possibilities.

BlueDragon
Installation, Web Server Support
Does BlueDragon support Apache 2?
BlueDragon and above supports Apache 2. See the system requirements page for more information on hardware/software support.

You may experience some challenges with different point releases of Apache 2, depending on the edition and point release of BlueDragon you're running. For information on known challenges integrating with Apache 2, please search for other FAQ entries referring to "Apache".

BlueDragon
Installation, System Requirements, VM Support
How can I install BlueDragon Server or JX onto a MacOS X system that has Java installed as the default version?
Newer shipments of Apple Mac hardware include both Java and (Java 5), AND have configured the Java 5 version as the default. Since BlueDragon versions prior to do not run on Java 5, the installation will fail. To work around this problem, the default Java version must be changed to Java There are two methods to accomplish this, both will preserve the Java installations (ie they will not be uninstalled). You need only use one of these procedures to have your system use Java as its default Java installation.

Change the Java version via the Runtime Settings:
  1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities > Java > J2SE "
  2. Open the "Java Preferences" application.
  3. Click the drop down lost beside "Use Version" and select "".
  4. Under the "Java Application Runtime Settings" click and hold the "J2SE " listing and drag it to the top of the list, above "J2SE ".
  5. Quit the "Java Preferences" application.
  6. Restart/reboot the system.

Change the symbolic links used to select the default Java version:
  1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities"
  2. Open a "Terminal" application.
  3. Enter: 'su root'
  4. Enter the 'root' password
  5. Enter: 'cd /System/Library/Frameworks/sprers.euork/Versions'
  6. Enter: 'ls -lsa'
  7. The above command should display the following amongst the contents of the directory: "CurrentJDK -> "
  8. Enter: 'ln -shf CurrentJDK'
  9. Verify the change by entering: 'ls -lsa'
  10. The following should now be listed: "CurrentJDK -> "
BlueDragon
Installation
How do I get the BDJX Linux installer to run on a non Graphical Linux System?
A non-graphical Linux system is one that lacks an X11 display (or whose DISPLAY variable is not set). Such a system is sometimes called "Headless" and graphical operations (GUI) will fail on it. The default installation mode for a BDJX Linux installer is GUI, so running that installer on a Headless system will give the following sort of error:
The recommended way to get past this issue is to run the installer in console mode. For example:


For those who would prefer the installer to default to GUI mode on systems where that's possible (already the case), but to also default to console mode on systems where GUI is *not* possible here is an unsupported way around it:
Run the following script to create a modified copy of the installer:

Thanks to Benoit Plessis for providing the script above.
Also thanks to Dan Moore for his blog post which pointed the way to this solution.
BlueDragon
Installation
How do I run the BlueDragon Server JX installer silently?
  • For BDJX
    1. Make sure you are using one of the patched BDJX installers found here:
      ftp://sprers.eu
      (or a newer installer if one is available).
    2. Create a file named and place it right next to the installer executable on your hard-drive.
    3. populate that file with (for example) the following details:
    4. Regarding BD_wsType:
      It is only used when BD_Do_adapter=true
      Valid ValuesMapped External Webserver
      AP2Apache x
      Apache22Apache x
      AW2Apache x
      Apache20 Apache x
      IISIIS
      Note that AWS which corresponds to Apache x is not supported by BDJX Also, BD_Instance & BD_User are not needed by BDJX They can be there or not, it makes no difference.
    5. Then simply invoke the installer as usual. It will detect the file there and use it to perform a silent installation.
BlueDragon
Installation
I&#;m trying to apply the Hotfix for BlueDragon/.NET, but when I try to drag and drop the dlls, they won&#;t copy. What gives?
In FAQ , we explain when and why to apply the hotfixes. The sprers.eu for each hotfix zip (downloadable from the web site) explains how to apply the fixes, and one for the .NET edition explains that for some types of installations you must drag and drop the updated DLLs to the "global assembly cache" (or GAC) located at windows\aseembly directory (and that you can't copy and paste them).

But the hotfixes are in a zip file, and while Windows may permit you to open that zip file to view it as if it is a regular directory, you'll find that when you try to drag the files out of the "directory", it won't work.

The problem is simply that you must first extract the zip file (or copy/paste the files to a regular directory first), and then drag/drop the files from there to the GAC (windows\assembly directory). Don't forget to restart IIS afterward.

BlueDragon
Installation
I&#;m trying to install BlueDragon .NET on a brand new machine and the installer fails when I double click on it.
Look in C:\Documents and Settings\username\WINDOWS and see if you have a folder named Fonts inside WINDOWS. InstallShield will fail without it. Add the folder (empty) and run the installer.
BlueDragon
Installation
I&#;ve installed sprers.eu but it doesn&#;t work properly. How can I verify it was installed properly?
Perform the following steps to verify sprers.eu was installed properly:
  1. For a single virtual directory install, verify the following DLLs were placed in the <installation directory>\bin directory: sprers.eu, sprers.eu, sprers.eu and sprers.eu For all other installs, verify these DLLs were installed to the Global Assembly Cache (GAC). The GAC is located at <Windows directory>\assembly.
  2. For a single virtual directory install, verify a sprers.eu file exists in the <installation directory> directory. This file must contain the following elements (NOTE: To make this FAQ easier to read, some attribute values are shown on multiple lines. When manually entering these elements, the attribute values must be placed on a single line.):
    • <section name="bluedragon" type="sprers.eulueSectionHandler, System, Version=, Culture=neutral, PublicKeyToken=b77a5ce" />
    • <bluedragon> <add key="SINGLE_WEB_APP" value="TRUE"/> </bluedragon>

You can watch a thematic video

¿Cómo Reparar Pantalla Azul Error PAGE_FAULT_IN_NONPAGED_AREA en Windows 10? [8 Soluciones Gratis]

Control.ClientID Property

Gets the control ID for HTML markup that is generated by sprers.eu

Property Value

String

The control ID for HTML markup that is generated by condition zero terrorist mode following examples show a Web user control that is inside a content page for a master page, summer color error .asp id. The user control contains a DropDownList control and a Label control. The text that is displayed in the Label control is determined by the value that the user selects from the DropDownList control. The text value is set through client script so that the Web page does not have to post back to the server in order to set this value, summer color error .asp id. To get a reference to the HTML element that is rendered for the Label control in client script, you must know the value of the control's ClientID property. However, because the user control can be put anywhere in a Web page, summer color error .asp id, it is impossible to know in advance which naming containers will contain the controls. To make sure that the ClientID value will be the same as the ID value, the code sets the ClientIDMode value to Static.

The following example shows the user control.

The following example shows the content page that contains the user control.

The following example shows the master page that contains the content page.

Remarks

When a Web server control is rendered as an HTML element, the attribute of the HTML element is set to the value of the ClientID property. The ClientID value is often used to access the HTML element in client script by using the method. The ID is also often used in CSS rules to specify elements to style. For example, the following CSS style rule selects all elements that have the attribute value of and sets their attribute to :

sprers.eu provides multiple algorithms for how to generate the ClientID property value. You select which algorithm to use for a control by setting its ClientIDMode property. The algorithms are identified by the ClientIDMode enumeration values that are listed in the following table.

  
BlueDragon
Admin Console
BlueDragon
Admin Console, Security
Can I remove the BlueDragon Admin console?
After configuring your BlueDragon .NET website, you can remove all access to the Apb reloaded login error code 9 UI by removing or renaming adminbda or adminbda located in the \config folder of the BlueDragon installation. sprers.eu is using adminbda if you are using Microsoft .NET Framework and using adminbda if you are using .NET Framework version
BlueDragon
Admin Console, Miscellaneous
Can you explain more about the possibility of encrypting and precompiling templates (or &#;sourceless deployment&#;) in BlueDragon?
Developers often want to deploy their code without source (sourceless), and while this has long been a problem for ColdFusion developers, BlueDragon has solved this problem since

Developers familiar with the ColdFusion CFENCODE (or previously named CFCRYPT) utility know that there are ways to revert that back to source code. Many developers have simply given up on the hope of sourceless deployment.

BlueDragon offers sourceless deployment with a feature called Precompiled, Encrypted CFML Templates. Offered in all but the free Server edition, you can create precompiled or encrypted templates from the Admin console or via a command-line utility. (The free Server edition also cannot process precompiled or encrypted templates, but all other BlueDragon editions, including in their trial and developer modes, can run precompiled/encrypted templates.)

The output of the process for each input .cfm (or .cfc) file is a new file with the same extension, but which is not human readable. (See the BlueDragon User Guide for more information.)

Note that you can compile all or just some of your CFML templates.

Additionally, BlueDragon uniquely supports setting an expiration date for your code during the precompilation/encryption process, so your code can be offered as a trial that will expire on the date set. Note that only the code expires, not the BlueDragon engine, so to offer a new set of code without an expiration date (or with a new one), you only need to give the client the new code (there's no need to reinstall BlueDragon).

Finally, note as well that the encrypted templates feature also offers greater security in a couple of different aspects.

If you'd like additional background information on the precompilation or encryption processes, see below.

Background: Page Processing

To understand this unique feature, it's important to understand how BlueDragon processes CFML templates (pages). CFML processing is done by BlueDragon in two steps:
  1. In step one, BlueDragon "parses" the static information in the CFML page (which tags does it contain, what attributes do the tags have, which portions of the page are plain HTML, etc.) and creates a representation of the page as an ordered collection of Java objects.
  2. In step two, the objects created in step one are "rendered" to create the HTML response that's sent to the browser. This is the dynamic, "runtime" step where expressions are evaluated, queries are executed, session and client data is managed, samsung scx 4100 scanner error.

The parsing step only needs to be done once, the first time a page is requested--the object representation compile error byref argument type mismatch vba the page is stored in memory in BlueDragon's "file cache" and the CFML source code isn't needed anymore. For subsequent requests for the page, the object representation is retrieved from cache and rendered directly. Of course, if a page is removed (flushed) from the cache, or the CFML source file is modified, the parsing step has to happen all over again.

Precompiled Templates

Here's where the "Precompiled" part comes in. The Java objects that represent the parsed CFML page can be serialized (converted to a byte stream) and written to a file. Therefore, a precompiled template is one where the CFML source has been parsed by BlueDragon, converted to a collection of Java objects, and then those Java objects are written (serialized) back to the file in place of the original CFML source. (Note that the process of precompiling destroys the original CFML source, so make a backup first!).

There are two advantages to precompiled templates:

  1. Because the CFML has already been parsed, BlueDragon can skip that first step and directly render the page. This saves processing time and improves performance, even if the page isn't stored in BlueDragon's file cache.
  2. It provides a level of obfuscation that helps protect your CFML source from prying eyes. It will be difficult (but not impossible) for someone to figure out how to de-serialize the Java objects that represent the CFML page, because those objects are proprietary to BlueDragon and their definition is not publicly available. But, even if someone does figure out how to de-serialize a precompiled template, all they'll get for their efforts is a bunch of Java objects--not your CFML source code, summer color error .asp id.

Encrypted Templates

Additional security for your CFML source code can be provided by creating "Encrypted" precompiled templates. When you create precompiled templates (either from the admin console or via a command-line tool), you have the option of encrypting the resulting serialized objects using industry-standard, commercial-grade encryption algorithms provided by the Java VM (see sprers.eu for details).

The advantage of encrypting your precompiled templates is that it cmos settings wrong keyboard error it extremely difficult (almost impossible) for anyone to decrypt the templates and reconstruct your CFML source. The disadvantages of encryption are that it significantly increases the file size, summer color error .asp id, and eliminates the performance advantage of precompiling due to the extra processing required to decrypt the template.

There's more, summer color error .asp id. Any CFML template encrypted using BlueDragon's built-in "default" key can be decrypted and run on any version of BlueDragon. However, you also have the option when creating precompiled, encrypted templates to have BlueDragon generate a unique key for that set of templates. Then, those templates can only be decrypted when that unique key is configured in the BlueDragon admin console. You can choose to create a single unique key and distribute that key to all your customers so they can run your code; or, you can create a unique key for each individual customer. It depends on what level of control and security you need.

What About the Former BDA Approach

Finally, for those of you who were interested in BDAs (BlueDragon Archives), here are the problems we discovered with BDAs, all of which are successfully addressed by Precompiled, Encrypted Templates:
  • Deployment of BDAs is awkward. There are several issues here:
    • The BDA only contains the dynamic contents of the application directory structure (".cfm", ".cfc", etc.) and not the static contents (".html", ".gif", ".js", ".css", etc.). This makes deploying an application somewhat disjoint: you have to deploy the original directory structure minus the dynamic content, and then also deploy and configure the BDA, summer color error .asp id.
    • Some of our customers only want to encrypt certain sub-directories of their application and not the entire application; some want to encrypt only custom tag libraries or CFCs. Again, this makes for a somewhat disjoint deployment using BDAs, summer color error .asp id.
    • The configuration required for BDAs can be confusing and error-prone for our customers or their customers.
  • "Default document" processing doesn't work with BDAs. That is, if you configure "sprers.eu" as the default document for a directory request (a request ending with "/"), it doesn't work if the sprers.eu file is within a BDA.
  • Microsoft IIS web server has an option to "check that file exists" before handing the request over to BlueDragon for processing, returning a Not Found result to the browser if the file doesn't exist. This doesn't work for BDAs, summer color error .asp id. (Other web servers may have similar options).
  • With BDAs, it's not possible to update individual files for "patching" an application.

For our customers who are committed to using BDAs, we'll continue to support them as long as you need them (BDA support still exists in BlueDragon andwe're just not going to publicize it anymore).

Precompiling from the Command Line

As mentioned above, it's possible to perform the precompilation from the command line, in addition to the Admin console option. The utility is called simply precompile (bat, exe or sh depending on operating system) and is found within the BlueDragon installation in either the bin directory of the java editions or the precompiler directory in sprers.eu

Learning More

The precompilation feature is discussed further in the BlueDragon User Guide. In the edition, it's in section

We hope you find this new feature interesting and useful. As always, we look forward to your feedback to help us improve this feature and others supported by BlueDragon.

BlueDragon
Admin Console, Version differences
Do I need to apply hotfixes if I just downloaded the latest version?
Between releases of BlueDragon we may roll up several bug fixes into a "hotfix". Such hotfixes are NOT incorporated into the downloadable version of the product, until we come out with a new point release. For instance, for the edition, we came out with hotfixes (for all BlueDragon editions) in May and Augustand until the next point release (), there will be no update to the installer.

So, yes, you still need to apply hotfixes even if you just downloaded the "latest" version, assuming there are any hotfixes to apply. They are listed at sprers.eu

If you haven't taken the time to apply those updates, we recommend you do. As the page points out, it's only necessary to apply the latest hotfix (if more than one exists), because the hotfixes are cumulative.

In order to determine whether you need the update, you may need to determine what release of BlueDragon you're currently running. See FAQ # critical error dea1 49 Applying a hotfix is quick and painless. The sprers.eu file associated with the hotfix zip file for each edition (and operating system) explains the steps needed to apply the update. It's just a matter of stopping BlueDragon (or the J2EE or .NET server), copying/renaming one or more files as directed (never more than a few), and then restarting and confirming the new release.

BlueDragon
Admin Console, Miscellaneous
Do you have any performance tuning recommendations?
Tuning BlueDragon should generally involve the same practices and techniques used with ColdFusion.

You should carefully consider all the settings in the BlueDragon Admin console. The defaults may require tuning in your environment (such as the default of 3 for each datasource's "maximum connections", summer color error .asp id, or the file cache size of 60, or the "max heap size" of k in the Java editions).

Note as well that BlueDragon offers some advantages in performance reporting, over CFMX, in that there are several "runtime state" reports in the BlueDragon Admin console, for both the entire server, each datasource, and the file/template cache. These reports can help identify bottlenecks, as well as help you determine the correct values to enter for the Admin console settings.

Of course, nearly any CFML application will benefit from judicious use of caching, whether query caching (CFQUERY CACHEDWITHIN and CACHEDAFTER and BlueDragon enhancements), page output caching (CFCACHE), summer color error .asp id, partial page caching (BlueDragon's own CFCACHECONTENT). A good primer on CFML caching techniques is Caching in ColdFusion, by Matt Boles at Macromedia. (Note that if you use or are interested in Brandon Purcell's CF_Accelerate tag, summer color error .asp id, we support that as well.)

Other code optimization techniques are offered in the CFMX manuals on Optimizing ColdFusion applications

Finally, as for configuring the environment (OS, web server, DBMS), we don't have any specific performance tuning recommendations for BlueDragon, but again some of the common techniques recommended for ColdFusion would apply. There have been several such resources posted by Macromedia. If you have any questions or concerns regarding the recommendations there and whether they apply to BlueDragon or in your environment, we're happy to discuss them with you, summer color error .asp id.

Additionally, there are some .NET-specific aspects to consider for those running the .NET edition of BlueDragon. The final chapter of the manual, Deploying CFML on sprers.eu, lists several generic .NET resources, including some focused on .NET tuning. We will also be adding more information (there or in a technote) elaborating on such issues of particular interest to CFML developers.

You may also find FAQ # to be of interest.

BlueDragon
Admin Console, Supported Features, Web Application
Does BlueDragon support clustering and session replication?
It is indeed possible to do clustering with BlueDragon, summer color error .asp id, and even enable session replication across servers in a cluster with the J2EE and .NET editions. Such clustering support is not enabled by features of BlueDragon but rather by those of the platform on which BlueDragon is installed (in the case of session replication, it's enabled by the underlying J2EE server or .NET framework).

Clustering servers is typically done using hardware or software mechanisms that offer load balancing and fail-over. Such mechanisms have been used with all editions of BlueDragon.

A common limitation with ColdFusion's built-in clustering (and indeed with some other clustering solutions) is that it forces the use of what are called "sticky sessions", meaning that once a user with a given session is on a given machine, they must stay on that machine. This reduces reliability, since if that one machine goes down, the user and their session cannot be "failed over" to another server in the cluster.

With the J2EE and .NET editions of BlueDragon, this issue can be eliminated. The platform on which BD is deployed will super frame errors whether clustering and failover works, and if the platform also supports session replication (between servers in the cluster), then CFML sessions created in these editions will benefit from that session replication.

In the BlueDragon Admin console, one can declare that "j2ee sessions" (or ".net sessions" on .net) should be used, which means that BlueDragon does not manage the sessions but instead the underlying platform does.

No other change is required of your CFML code. You continue to set and get session variables the same way you do already.

If you then enable clustering and/or replication of sessions between servers, your CFML sessions will be replicated. (The use of such session replication has been found to fail with ColdFusion MX and certain J2EE servers, including WebSphere Network Deployment edition, among others. BlueDragon has been found to support session replication in all environments tested.)

Note that BlueDragon supports persistence of CFC instances to sessions, and those can be replicated as well. (This is possible because BlueDragon supports serialization of ColdFusion Components, where ColdFusion does not.)

Many shops have switched to using Client variables instead to support persistence of a user's data across servers. BlueDragon certainly supports client variables, but note that sessions can be set to timeout in a timeframe of minutes while client variables timeout in a timeframe of days (so people have to build custom solutions to clear out a user's client variables to simulate a timeout). The ability to return to using sessions in such cases can relieve some challenging problems.

To learn more about the mechanisms for session replication supported in a particular J2EE server, see that server's documentation. In .NET, sessions can be persisted to either a database or "state server", as configured in the sprers.eu or sprers.eu files with the .NET sessionState directive, as discussed in such resources as:
sprers.eu

Additionally. NET users should also consider the commercial product, ScaleOut State Server, which offers many improvements over .NET's built-in session State Server mechanisms (and was built by former Microsoft engineers responsible for the state server feature).

BlueDragon
Admin Console, Exceptions, summer color error .asp id, Supported Features
Does BlueDragon support the notion of limiting the execution time of CFML pages?
BlueDragon does not support page execution timeouts in all the same ways developers may expect from their experience with ColdFusion.

First, BlueDragon does not currently support an admin console setting to "Timeout Requests" for all pages.

Second, like CFMX, BlueDragon does not support the use of RequestTimeout as a query string.

The .NET edition of BlueDragon does support the new CFSETTING RequestTimeout attribute, summer color error .asp id, which was introduced in CFMX. If a CFML page on BlueDragon/.Net gets the .NET error, summer color error .asp id, "Request timed out", summer color error .asp id, this can be resolved by adding the CFSETTING tag (or increasing its timeout value) either on the page that's timing out or in the sprers.eu (to affect all pages in that application).

Also note that by default, the page timeout for all .NET web pages is 90 seconds, summer color error .asp id. This is imposed by the .NET framework, summer color error .asp id, not BlueDragon. It can be configured in the sprers.eu (or sprers.eu) file by using in the executionTimeout attribute of the <httpRuntime> element. For example:

Finally, the Java editions of BlueDragon do not support the CFSETTING attribute RequestTimeOut attribute. Indeed, they simply ignore it if used. As such, in the Java editions of BlueDragon, there is currently no way to limit execution time for a CFML page.

BlueDragon
Admin Console, DataSource, JDBC
How can I add a datasource for a database not listed in the &#;driver types&#; drop-down?
Database access in BlueDragon is based on the standard Java JDBC API (for the Java-based products, Server, Server JX, and J2EE) or sprers.eu (for the .NET edition). It also supports ODBC in all editions, when deployed on Windows.

Depending on the edition of BlueDragon you're using, BlueDragon may provide built-in drivers or you may be able to add support for other databases, if you can obtain and install the needed drivers. ssd chkdsk errors Server Edition The free Server edition allows use of ODBC databases (on Windows) and (on Linux or OS X) either PostgreSQL or MySQL only. See below for issues regarding using ODBC and MySQL databases.

Server JX and J2EE Editions

The other editions, BlueDragon Server JX and BlueDragon/J2EE, are bundled with JDBC drivers for Microsoft SQL Server, Oracle, and PostGresQL databases. See below for issues regarding using ODBC, MySQL and other databases.

.NET Editions

BlueDragon for the Microsoft .NET Framework comes bundled with sprers.eu drivers for Microsoft SQL Server and Oracle. See below for issues regarding using ODBC and MySQL databases.

ODBC Datasources: All Editions

All editions provide access to ODBC datasources on Windows machines. To add a datasource for MS Access or another ODBC datasource (such as MySQL, PostGreSQL and more), see How do I add a datasource for MS Access and other ODBC databases?.

MySQL: All Editions

For information on defining MySQL Datasources, see How can I define a MySQL datasource?.

Other Databases: Server JX and J2EE Editions

What about other databases, such as DB/2 or DB2, Sybase, Informix, Ingres, SAP DB, Firebird, Pointbase, Cloudscape, etc.?

In order to access a specific vendor's database product on a Java version of BlueDragon, a JDBC driver for that product must be installed in BlueDragon (supported only on the Server JX and J2EE editions). For additional information about JDBC, see:

sprers.eu
To add another database driver, install it per the driver's instructions and add the location to the BlueDragon classpath (in the admin console, go to "BlueDragon Server>vm classpath". Restart BlueDragon. Then, to configure the datasource on the "Datasources>Configure" page in the BlueDragon administration console, summer color error .asp id, select "Other". The online help for the next page of the datasource wizard contains instructions on providing the driver class name and database URI for the driver you're adding.

See the online help in the BlueDragon administration console for further details, as well as further discussion in the BlueDragon User's Guide.

Other Databases: .NET Edition

What about other databases not listed in the drop down for adding datasources? summer color error .asp id In order to use any databases other than those listed in the Admin Console, you must use an ODBC datasource. See the discussion above about ODBC datasources.

BlueDragon
Admin Console, Administration, DataSource
How can I define a MySQL datasource?
MySQL is supported in all BlueDragon editions, summer color error .asp id, either via JDBC or ODBC.

In the Server JX, J2EE, and .NET editions, an option is offered in the datasource configuration page of the administration console, summer color error .asp id. In all editions, a MySQL datasource can be defined using ODBC.

In all cases, we do not provide the MySQL database drivers with BlueDragon. MySQL AB restricts redistribution of the MySQL drivers with other products, though the database itself is open source. For more information, see the MySQL Licensing Policy for more information.

But installing it is simple enough, whether to use ODBC or JDBC. The following steps describe first using the ODBC and then the JDBC driver.

Steps to using the MySQL ODBC Driver for all BlueDragon 3rd master hard drive error the latest MySQL Connector/ODBC driver from the MySQL web site:
sprers.eu
  1. After reviewing information on the page, choose the link for the latest stable release.
  2. On the page that follows, scroll down to the download links.
  3. Choose the download appropriate to your platform (choose "pick a mirror", then any listed site, and download using either http or ftp as you prefer).
  4. For Windows users, run the installer and proceed to define an ODBC datasource using the Windows ODBC control panel. For other users, consider using the JDBC driver discussed below, or follow the instructions offered on the MySQL site for installing and using the ODBC driver.
  5. Once an ODBC datasource has been defined, view error 628 vpn "data sources" page in the BlueDragon Admin console and choose the "ODBC Refresh" button below the list of any current datasources. BlueDragon will refresh the list with any ODBC datasources you have defined.

Steps to using the MySQL Driver for Server JX and J2EE editions

  • Download the latest MySQL Connector/J driver from the MySQL web summer color error .asp id
    sprers.eu
    1. After reviewing information on the page, summer color error .asp id, choose the link for the latest stable release.
    2. On the page that follows, scroll down to "Sources and Binaries".
    3. Choose the "download" link. Windows users will likely prefer to choose the zip file format, while Linux, Solaris, Mac and other users may prefer the sprers.eu format.
    4. The next steps (to extract the driver from the compressed file) will vary depending on the file type chosen, your operating system, your browser, and your installed support for unzip-type programs. The files within the compressed file (zip or sprers.eu file) are stored within it in a directory such as mysql-connector-javastable (your version of the driver may be slightly different).
    5. You can choose to extract the files from the compressed file to a directory of that same name (mysql-connector-javastable) on your system. But of all the files within the compressed file, the only one that really matters for use with BlueDragon is the actual driver jar file, which for the version would be named sprers.eu You may choose to extract just that file, and place it on your file system within the BlueDragon directory as discussed in the following sections.

  • Configure BlueDragon to recognize the driver
  • The steps to configure BlueDragon to recognize the MySQL driver will vary from product to product (Server, Server JX. NET, and J2EE):
    • In the Server (non-Windows) or Server JX editions, simply save the jar file (from above) as sprers.eu in the lib directory under BlueDragon, such as:
      C:\BlueDragon_Server_JX_61\lib\sprers.eu
      Then restart BlueDragon.
    • In the J2EE edition, you can leave the file named as it was on download, but simply place it in the WEB-INF/lib directory of the web application.
    • It's also possible in the Server JX edition to place the jar file anywhere in the file system and use its original summer color error .asp id. Simply go to the "BlueDragon Server>vm classpath" page of the administration console and add the path to the JDBC driver JAR file. Then restart BlueDragon.
    After making these changes and restarting BlueDragon, you can then define MySQL datasources using the provided "MySQL" option on the drop-down for driver types in the BlueDragon administration console.
For the .NET edition, follow the steps outlined in the admin console page for adding a MySQL datasource.

We encourage you to review the MySQL licensing policy before using their JDBC driver (or the MySQL database) with BlueDragon, as there are circumstances where they require you to purchase a commercial license or risk having your software "infected" by the GPL:

sprers.eu
If you're looking for a database that--unlike MySQL--can be used for free in all circumstances, we recommend that you consider PostgreSQL:
sprers.eu
The PostgreSQL JDBC driver is bundled with all BlueDragon editions.
BlueDragon
Admin Console, Security
How can I secure the BlueDragon Admin UI in BlueDragon?
The following are some suggestions:
  1. Password protection:
    Password-protect access to the admin pages by configuring and admin password on the "License & Summer color error .asp id page of the BlueDragon Admin UI

  2. IP Filtering
    Access to the BlueDragon Admin UI can be restricted to particular client computers. To list the ips which will be allowed access, simply summer color error .asp id them in a comma-separated list in the BlueDragon Admin UI under License & Security tab. Use the Help button at the top of the License & Security page for specific examples when configuring this option.

  3. Remove the Admin Pages
    You can entirely remove the Admin UI by removing or renaming the file for the Admin UI which is located in the folder of the BlueDragon installation.
    For example, with BD .NET this would be a file named either or. sprers.eu uses one other other, depending on which version of the .NET framework ( or ) is being used.
    See BD FAQ # for info on how to switch .NET framework versions.
    With BD JX, the name of the file is just

    If you choose this option, be aware that you must then manually make any changes to the global or individual sprers.eu file (whose location for a given web site or web app is discussed in the BlueDragon/.NET documentation).

  4. Rename the Admin Console
    It is indeed possible to rename the url used to access the BlueDragon Admin console. The default is to append /bluedragon/sprers.eu to the URL for the web site or given virtual directory (or directory configured as a web application, as discussed in the documentation). You can change the path used to call up the Admin console by manually editing the sprers.eu

    (Notice that there is no /bluedragon/sprers.eu file in the web application. BlueDragon uses an internal mechanism, driven by configuration within the sprers.eu, to control the URL to be used.)

    Within the <server> <file> element, there is an <application name="admin"> node:

    <server>
      <file>
        <application name="admin">
          <name>admin</name>
          <path>C:\sprers.eu\config\sprers.eu</path>
          <context>/bluedragon</context>
        </application>
      </file>
    [other elements may follow this ]
    </server>

    You can simply change summer color error .asp id <context> element to something other than bluedragon, then use that in the URL to call up the Admin console p2v 3140 error adding the /sprers.eu after that when typing the URL in the browser, not by adding it in the XML above).

    If you wanted to change the admin console URL for all web apps on the server, apply this change in the global sprers.eu admin file, summer color error .asp id.

    Finally, if you change the sprers.eu file, you must restart the affected web app for the changes to take effect. See the documentation on how to restart web apps.

BlueDragon
Admin Console, summer color error .asp id, DataSource
How do I add a datasource for MS Access and other ODBC databases?
It's certainly possible to use MS Access and other ODBC datasources (on Windows machines), including PostGreSQL, MySQL, and others. Before discussing this, be aware of the difference between adding a datasource (such as a datasource called "mytest" pointing to a MySQL database called "mytest") and adding a database driver (such as the ODBC driver allowing you to use a MySQL or other database). This FAQ discusses both aspects. This is also discussed in the BlueDragon User Guide.

Auto-detection of ODBC Datasources

BlueDragon automatically detects and loads into its administration console any ODBC datasources (such as a "northwind" datasource pointing at the SQL Server "Northwind" database) that you or others may have defined in your environment (whether by way of the Windows "ODBC Data Sources" control panel tool or the ColdFusion 5 Administrator). You can immediately use any such datasources that are already defined when BlueDragon initializes on startup (unless you need to add a username or password).

Adding New ODBC Datasources

If you add datasources using either of those other means after BlueDragon has started, you can simply press the "ODBC refresh" button provided on the datasources page of the BlueDragon administration console. This will refresh the list summer color error .asp id detect new ODBC datasources. Again, you may need to add a username or password to the datasource wsagetlasterror = 10054 before you can use it.

Therefore, to add an MS Access or other ODBC datasource to BlueDragon, add it using the Windows "ODBC Data Sources" control panel tool. This can be accessed from "Administrative Tools" in Windows and above.

Adding a UserName or Password

The auto-detection mechanism cannot pick up any username or password defined in the ODBC datasource (entered in the Windows Datasource control panel tool). If you intend to rely on the username/password being provided in the datasource definition (rather than providing it on the CFQUERY), you must then re-enter those values in the BlueDragon datasource definition.

Adding New ODBC Drivers

If a driver for the database you wish to use isn't listed in that Windows ODBC Data Sources panel, you can add them by installing them yourself. Many databases will automatically add a new ODBC driver into the windows environment during installation of the database software. Otherwise, you may be able to obtain the database driver via the internet.

For instructions on obtaining and installing the MySQL ODBC flash execution error, see "How can I define a MySQL datasource? ".

To obtain an ODBC driver for PostGreSQL, see sprers.eu It will be helpful to also review the summer color error .asp id for installing and using the MySQL ODBC driver as many steps will be similar.

For other databases, simply seek the appropriate ODBC driver from any source on the Internet, and follow the instructions above.

BlueDragon
Admin Console, Version differences
How do I determine the release of BlueDragon I&#;m running?
You can view your current engine revision in any of several ways:
  • it's displayed at the top of the debugging info displayed on each CFML page (assuming you've enabled it summer color error .asp id the BD Admin console)
  • it's displayed in the Admin console itself, at the bottom of the general>runtime state page
  • it can be viewed by outputting the variable #sprers.eutversion# in a CFML page (yes, we use the same ColdFusion structure in the Server scope that ColdFusion uses to report this sort of info)
BlueDragon
Admin Console, Administration, General Info, summer color error .asp id, Miscellaneous
How do I determine what sprers.eu Admin Console pertains to a particular URL?
sprers.eu has a separate Admin Console for each IIS web site and web application. This is an incredibly useful feature when you're running disparate applications on one machine because it allows you to configure them entirely separately and differently. It also means that you can trip yourself up if you configure something for one site when you mean to configure it for another. Sometimes it can be difficult to tell what sprers.eu Admin Console applies to a particular URL. Here's an easy way to tell: take the following CFML code, put it in a .cfm file in the directory of interest, and browse to it as you would the directory of interest (NOTE: code in summer color error .asp id sprers.eu file may affect the normal processing of this file). It will give you a link to the sprers.eu Admin Console that applies to that URL. <cfif FindNoCase(".NET", sprers.eutlevel)> <cfobject type="java" action="create" name="sprers.eu" class="sprers.eune" > <cfset sprers.eukingDir = sprers.eukingDirectory().getAbsolutePath()> <cfset sprers.eudmin = "http"> <cfif FindNoCase("HTTPS", summer color error .asp id, sprers.eu_Protocol)> <cfset sprers.eudmin = sprers.eudmin & "s"> </cfif> <cfset sprers.eudmin = sprers.eudmin & "://" & sprers.eu_Name> <cfif sprers.eu_Port NEQ 80> <cfset sprers.eudmin = sprers.eudmin & ":" & sprers.eu_Port> </cfif> <cfset sprers.eudmin = sprers.eudmin & sprers.eut_Path & "/bluedragon/sprers.eu" > </cfif> <html> <head> <title> My BlueDragon Admin Console </title> </head> <body> <cfif isDefined("sprers.eudmin")> <cfoutput> My BlueDragon Admin Console: <a href="#sprers.eudmin#">#sprers.eudmin#</a> </cfoutput> <cfelse> No implementation for your app server. </cfif> </body> </html>
BlueDragon
Admin Console, DataSource, JDBC
I get a &#;General SQL Error&#; trying to use or verify a datasource. Why doesn&#;t it give a more useful error?
We've noticed that with some JDBC drivers you'll often get a "General SQL Error" the first time you try to verify or use the datasource, and then a more specific error the second time, summer color error .asp id. We think we know why this might be happening and are investigating a solution. In the mean time, if you get a "General SQL Error" when verifying or using a datasource, try verifying it a couple of times (in the admin console) to see if you get a better message the second time.
BlueDragon
Admin Console, summer color error .asp id, Administration, Installation, Registration
I want to input my BlueDragon license key. How do I do that?

Normally this is done using a web browser. In that scenario, you would simply use the browser to access the BD admin pages, and input the key on the Licensing page.

When a BD installation has no license key installed, it will run in Developer Mode. Note that this will occur if you use the BD admin pages to remove the key.

When removing a key, you should always do so from a browser that is running on the SAME machine as BlueDragon. To understand why, summer color error .asp id, read on

When BD is running in Developer Mode, the BD admin pages can only be accessed from a browser that is running on the same machine where BD is installed.

This means that it is possible to use a remote browser to runtime error 339 comdlg32 ocx a license key, summer color error .asp id, but then that remote browser will imacros error 802 denied any further access to the BD admin pages. Remote browsers are denied such access for security reasons.

In this case, here is how to enter your license key:

  • If using BD Server or BD Server JX:
    1. Stop BlueDragon (see below for more details on stopping/starting)
    2. Use a plain text editor to edit the "sprers.euties" file so that the value of the "sprers.eu" property is your license key. (The file is in the config folder of the BlueDragon installation directory.)
    3. Start BlueDragon
  • If using BD .NET or BD J2EE:
    1. Stop the BlueDragon web application (see below for more info on starting/stopping)
    2. Use a plain text editor to edit the sprers.eu file for your BD installation. (In a J2EE web application this file is located in the web app's WEB-INF\bluedragon directory. In a .NET implementation, summer color error .asp id, the location depends on the installation error in java launcher in a "single virtual directory" installation, it's that virtual directory's bluedragon\config directory. For the other .NET installation choices, the key goes in a special central sprers.eu in the sprers.eu\config directory.)

      In that file, you'd need to look under the "<server>" node, then under the "<system>" node. Under there is where you'd need to have a node that looks like this:

      So for example if your key is "ABC" then you'd have something like this in your sprers.eu file:

    3. Start the BlueDragon web application

    Stopping/Starting BlueDragon

    For more information on stopping and starting the BlueDragon web application as deployed on J2EE or .NET, see FAQ the respective BlueDragon manuals for those products.
BlueDragon
Admin Console
I&#;m having trouble with a datasource in the .NET edition. I&#;ve added it, and verified it in the Admin console, yet when I try to use it in my CFML page, I get &#;The datasource xxx could not be found&#. (Or I make other admin console changes and they don&#;t seem to take effect.)
The problem is likely due to the fact that BlueDragon/.NET enables multiple admin consoles, summer color error .asp id, one per web site or virtual directory (because .NET regards each web site or virtual directory as a different "application domain"), summer color error .asp id. The problem summer color error .asp id likely that you're adding/verifying the datasource in one admin console (such as that for the web site root), but running your CFML page within a virtual directory or another web site. You must add the datasource (and any admin configuration settings) in the admin console for the web site or virtual directory in which the code is running. For more info on finding the appropriate Admin Console, see FAQ

If you're concerned because you want to add a datasource to all the admin consoles, and don't want to add/update summer color error .asp id one-by-one, be aware that BlueDragon/.NET supports a notion of inherited global admin settings, where summer color error .asp id edit a central sprers.eu with the desired shared settings, and all the web sites and virtual directories inherit from that. See section of the manual for more information.

For more information, see the manual, "Deploying CFML on sprers.eu Servers", particularly sections and (the section numbers are as of the release of the docs).

BlueDragon
Admin Console, Session Tracking
I&#;m running on sprers.eu, on IIS 6, and am frequently losing my sessions and/or am frequently being logged out of the BlueDragon Admin console. What gives?
The problem is not a BlueDragon one but rather a common problem that trips up even sprers.eu developers. If you set up your IIS 6 application pool to enable the "web garden" (or setting the "max number of processes" for that pool to greater than 1), you are in effect creating a cluster of instances.

A problem exists, however, if you enablel .NET sessions in BlueDragon's admin and also have left .NET's session management to its default of storing sessions in memory (inproc). The problem is that, now with web gardens enabled, if a user is moved by IIS summer color error .asp id .NET from one process/instance to another, the session on the first won't exist on the second.

The simple solution is to change your .NET session configuration from "inproc" to either "stateserver" or "sqlserver". Again, this is purely a .NET problem with a .NET solution. It was discussed at further length in a BlueDragon blog entry.

BlueDragon
Admin Console, General Info
I&#;ve configured a Missing Template Handler in IIS7 for BlueDragon but I continue to get a Server Error, error page. How can I configure my custom Missing Template Handler to override the server&#;s custom page?
In IIS Manager, choose Error Pages, located under the IIS configuration section. Highlight Status Code and choose "Edit Feature Settings" in the far right frame. If Custom Errors is selected, this indicates that the Server will provide the Custom Error page and not BlueDragon. You should choose Details and your Summer color error .asp id Template Handler will be served when a occurs.
If this does not help, see FAQ
BlueDragon
Admin Console, Security
I&#;ve lost my password to open the BlueDragon admin console. How can I recover from this?

Stop Summer color error .asp id. For BlueDragon JX, stop the BlueDragon JX service using the services control panel. For sprers.eu, stop IIS. For BlueDragon JEE, stop the JEE container.

Edit your "sprers.eu" configuration file (whose location is discussed in FAQ ) and find the <server><system><password> entry. Delete whatever value you find there so that the <password> entry is empty:

<server> <system> <password></password> </system> </server>

Restart BlueDragon. For BlueDragon JX, start the BlueDragon JX service using the services control panel. For sprers.eu, start IIS. For BlueDragon JEE, start the JEE container.

Since there's no password defined, you'll be able to access the BD admin console directly without logging in. Immediately set a new password.

BlueDragon
Admin Console, Security
Where do I find the cfml pages for the BlueDragon Admin console?
There are no BlueDragon Admin cfml pages. The pages are stored in sprers.eu located in the \config folder of your BlueDragon Installation directory. If you are running sprers.eu, summer color error .asp id, the file is named adminbda and adminbda. Your version of .NET determines which sprers.eu is being used.
BlueDragon
Admin Console, Installation
Where do I place files in support of CFXs?
In the Java versions of BlueDragon, the Java class file supporting the CFX must be either an unbundled .class file or bundled within a .jar archive. For BlueDragon Server or Server JX, the class files can be placed in the
BlueDragon
Admin Console, Installation
Where is the sprers.eu file located?
The location of the sprers.eu file, which holds changes made in the BlueDragon admin console, depends on the edition of BlueDragon being used.

In the Server or Server JX editions, summer color error .asp id, it's in the [bluedragonroot]/config/ directory where [bluedragonroot] is the location where BlueDragon was installed summer color error .asp id as C:\BlueDragon_Server_JX_62, or /usr/local/NewAtlanta/BlueDragon).

In the J2EE edition, it's in the WEB-INF/bluedragon/ directory of the BlueDragon web application or WAR file.

In the .NET edition, the location depends on the kind of installation performed and whether multiple a generic error occurred in gdi+. nopcommerce (web sites, virtual directories, or directories defined in IIS to be an application) have been defined. See the documentation, Deploying CFML on sprers.eu Servers, in the section "sprers.eu Configuration File Location", for more information.

BlueDragon
Admin Console, summer color error .asp id, Administration, Web Application
Why aren&#;t my session being shared client error inject CFML and sprers.eu pages?
The simplest reason would be if you have not enabled ".net sessions" in the BlueDragon admin console's "application>settings" page. Further, be aware that your code may be running in a virtual directory or web site where its own BlueDragon Admin Console settings differ from the global admin console. Use http://yourdomain/yourvd/bluedragon/sprers.eu to look at the Admin Console for the virtual directory. For more info on finding the appropriate Admin Console, see FAQ

Another possible issue could be that your CFML code is using a named application (CFAPPLICATION NAME="xx" SESSIONMANAGEMENT="yes"), in which case you must write code in the sprers.eu page that properly accounts for the use of such a named application (by referring to it as a blackberry file system out resources error in sprers.eu).

Finally, a more subtle explanation could be that CFML and sprers.eu files are being processed by different versions of the .NET framework, summer color error .asp id. For instance, summer color error .asp id, if CFM files are set in the IIS admin console to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, but the ASPX files are set to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, then these different versions will NOT share session variables.

Again, if your code is running in a virtual directory or its own web site, the configuration of these mappings may be set for that summer color error .asp id, so be sure to check carefully.

BlueDragon
Admin Console, Known Limitations and Workarounds
Why can&#;t I register my Java CFX tags in BlueDragon .NET?
The .NET Framework does not support Java classes. Any Java programs must be recompiled using Visual J# (which is part of Visual sprers.eu). As such, BlueDragon/.NET does not support use of Java CFXs without their being recompiled in .NET (using the sprers.eu that is provided with sprers.eu).

See the CFX directory where BlueDragon/.NET is installed for more information on how to socket error connection reset by peer a CFX (Java or C++) for use with BlueDragon/.NET.

Also, see FAQ for more information on using C++ CFXs in .NET.

If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Error 1335 the cabinet file, the .NET Framework libraries may offer an alternative solution to the need.

If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may pdweb error could not start server able to work with the vendor to help them recompile the CFX createremotethread windows 7 error 8 use with .NET. Contact us, or have them do so, at this account.

BlueDragon
Admin Console, Administration, Known Limitations and Workarounds
Why do the admin pages not display?
On some Linux systems (especially Debian and SuSE), installations of BlueDragon Server and Server JX may have problems with the display of the BlueDragon Administration Pages (e.g. http://localhost/bluedragon/sprers.eu). This problem is caused by failures to decrypt the admin page CFML templates. The primary symptom of the problem is the return of a page in place of the admin page which contains a stack trace caused by a "sprers.eualError: Unexpected exception in IJCE_sprers.euerTargets()". Also a number of "Netscape security model is no longer supported." messages will appear in "<BD-root>/logs/BlueDragon_sprers.eu".

Replacement of the installed version of "<BD-root>/jre/lib/ext/cryptixjar" with this sigusr1[soft, tls-error] received, process restarting version from the BlueDragon FTP site, will correct the problem.

BlueDragon
Admin Console, Supported Features
Why don&#;t I see any output trace information when using CFTRACE?
One of the new features in BlueDragon is support for CFTRACE, as introduced in CFMX. As in CFMX, it can be used such as in <cftrace text="sometext"> which can cause a line such as this to be written to the debugging output:

[CFTRACE ] [[pathtofile] @ line: 1] - sometext

This output will of course be shown only if debugging output is enabled in the BlueDragon admin console. But more than that, there is a specific option in the the admin console (debugging>settings page) labelled "trace points", which must also be checked. If "trace points" is not enabled, CFTRACE tags are ignored.

For those new to CFTRACE, note as well that output can be written to the page itself at the point of the CFTRACE (rather than in the debugging output) by adding INLINE="yes" as an attribute of the CFTRACE. This option also still requires that the debugging output (and trace points) options be enabled.

Note that this means that CFTRACE can be left in a page even in production, since they create no output if debugging is disabled.

Administration
BlueDragon
Administration
Can I move the BlueDragon for J2EE Servers work directory outside my application&#;s open directory or EAR/WAR?
Yes. In order to do this, edit the <param-value> sub-element of the <init-param> element whose <param-name> sub-element's value is BLUEDRAGON_WORKING_DIRECTORY to have an absolute path like the following: <init-param> <param-name>BLUEDRAGON_WORKING_DIRECTORY</param-name> <param-value>C:\bluedragon\work</param-value> </init-param> IMPORTANT NOTE: you must not use the same work directory for more than one Bluedragon for J2EE Servers application. If you have more than one BlueDragon for J2EE Servers application, consider using each application's context path as part of the path to its working directory.

NOTE: in addition to BlueDragon for J2EE Servers, this FAQ is applicable to BlueDragon, BEA Weblogic Edition.

Keywords: log, logs, work directory, working directory
BlueDragon
Administration, Profiling Servlets
Can I use FusionReactor with BlueDragon?
Yes.
It is possible to use FusionReactor [FR] with BlueDragon for J2EE Application Servers. Follow the Manual Installation steps given in the FR Installation Guide.

It is also possible to use FR with BlueDragon JX or higher (not older versions of BDJX). Detailed instructions for that combination follow:
At the time of this writing (August ), the FR Installation Guide is available from the FusionReactor Website.
From there click "FusionReactor" (along the top) and then "Online Support" (lower right). Then click the "Documentation" link under the "FREE Online Support" heading. That is where we found the link to the FR Installation Guide

The last section in that guide is entitled "Manually installing FusionReactor". It contains a subsection entitled "Overview" which you should read, but don't perform any steps yet. There are 2 other subsections that deal with Manually installing FR (one for Windows and one for Unix). Those "manual installation" subsections give the step-by-step procedure for "hooking" FR into a CFML-Enabled Servlet/JSP Engine.
If you are using BDJX then you should follow those steps as they are given but with the following exceptions/clarifications:
  1. In step #4, the "default web descriptor" for BDJX is: You'll copy the filter definition from the sprers.eu file into that default web descriptor as follows:
    1. Place your cursor at the start of the last line in that file (just before ).
    2. Paste the filter definition right there.
    Ensure that the path to the sprers.eu file is correct.
  2. In step #5, look over the entire contents of the sprers.eu file and make sure that all references to the FR installation folder are correct (they must all match where you actually unpacked the FR archive)
  3. In step #6, copy the sprers.eu file to the BDJX lib\ext folder.
  4. In step #7, you must edit the OPTIONS line in sprers.eu file so that line now reads (all on one line):

    OR you could optionally NOT edit the start script at all but rather copy the contents of the folder into a folder that is already listed in the value of the JVM Socket error 10093 property (navigate to on the BDJX Admin UI to see that value).
  5. In our testing we found that FR is very picky about the syntax of the sprers.eu file. For example, we found that absolute paths needed to use forward slashes / rather than backslashes \. For example:

    And Note that the full colon in the sample above is correctly escaped with a backslash. This is necessary due to the fact that FR reads the sprers.eu file in as a Java Properties file. In our testing, we found that when sprers.eu contained summer color error .asp id path syntax errors FR would output the follow sort of messages to the BlueDragon Server sprers.eu file:


NOTE:
FusionReactor does not work with any other edition of BlueDragon, including BlueDragon .NET Standard and BlueDragon .NET Enterprise.
BlueDragon
Administration, Profiling Servlets
Can I use SeeFusion with BlueDragon?
It should be possible to use SeeFusion with BlueDragon for J2EE Application Servers and BlueDragon, BEA WebLogic Edition. However, SeeFusion does not work with any other edition of BlueDragon, including BlueDragon Server, BlueDragon Server JX, BlueDragon .NET Standard and BlueDragon .NET Enterrprise.
BlueDragon
Administration, Supported Features
Does BlueDragon support the sprers.eueFactory in CFMX?
There is an undocumented API for CFMX which provides programmatic access summer color error .asp id the Administration of the server, including listing and updating such information as datasources, mappings, schedule tasks, etc. We appreciate that developers want such a solution in BlueDragon.

Still, this ServiceFactory is not only undocumented but has been deprecated in CFMX 7 in favor of a new CFC-based api, we will not be offering any implementation of these identical undocumented ServiceFactory methods.

We had already begun creating a CFC to provide programmatic Admin access even before the CFMX 7 beta began, and we are still debating whether to proceed with and release that, or rewrite to follow CFMX 7's CFC component and method names After resolving this and related matters, we will make the CFC available as soon as possible.

In the meantime, if BlueDragon VAR partners or other customers have a desparate need for this functionality, summer color error .asp id, we have an early version of our own admin api CFC available. Contact [email protected] if interested.

BlueDragon
Administration
Does BlueDragon work with Windows XP SP2?
Yes, it does. It's worth noting, however, that among the new security features in XP SP 2 is one that--if set--may make it seem that BlueDragon does not work.

In the new Windows Firewall feature (Start>Control Panel>Security Center>Manage Configuration Settings for Windows Firewall), be sure that the option "Don't Allow Exceptions" is not checked. If it it is checked, summer color error .asp id, then the BlueDragon port will be blocked "silently" and BlueDragon won't work.

BlueDragon
Administration
How can I determine if my .NET web application is restarting too often?
If you find that requests installation failed error 59738 any page in a .NET web app (whether aspx or cfm) seem to be running slowly for every or many requests, one thing to determine is whether the "app domain" for the sprers.eu pages might be unloading due to some problem. (.NET defines each web site and each virtual canon ixus700 e18 error as a web app, or technically an "application domain".)

There are various reasons that an application may be restarted, as discussed in the BlueDragon manual, "Deploying CFML on sprers.eu Servers", in the section "Automatic Stopping/Restarting of .NET Web Applications".

If some problem of unexpected behavior is causing .NET to unload the web app, then any subsequent request for a page after it's been unloaded will spend time trying to restart the app domain. This could cause a drag on execution of requests.

Fortunately. NET tracks restarts by way of statistics that can be viewed with Windows Performance Monitor start. You can observe whether restarts are occruring by viewing the PerfMon tool. Open Performance (from Administrative Tools), then switch to "report view" (ctrl+r) (to see numbers, not charts), then "add" (ctrl+i) the appropriate counter. To get that counter, select the computer to be monitored, then for "performance object", choose "sprers.eu v" (assuming you are using the .Net framework), and choose "application restarts" and "add".

This will add a counter showing how often all or selected app domains restart. If it's a large number, then you have experienced many restarts since the server itself was started. You could run a small sample application (also provided in the documentation) to force an unload of the app domain, and again you should see the counter go up. (See the related section on the negative impact of application restarts on sessions.)

Note that you can also use PerfMon to set up alerts and logs instead to "watch" any of these counters.

BlueDragon
Administration, General Info, Installation
How do I start and stop BlueDragon Server?
BlueDragon Server and Server JX are just two of four editions of BlueDragon. As standalone editions, they run as a service or daemon that can be stopped/started, as discussed in the FAQ.

If you're a Windows user, you can restart BlueDragon through the Services Control Panel. Or, you can use the sprers.eu and sprers.eu found in the installation directory's bin folder.

If you're a Linux or MacOsX user, you will find a sprers.eu and sprers.eu in the BlueDragon installation folder's bin directory. (Use ./sprers.eu to run the stop script, for instance.)

For the J2EE edition, you can restart the BlueDragon WebApp as supported by whatever J2EE or servlet engine you're running. For the .NET edition, see the manual, "Deploying CFML on sprers.eu Servers" for more information on starting/stopping a BlueDragon .NET application.

BlueDragon
Administration, Web Server Support
How do I switch my .NET framework betweem .NET and .NET ?

Assuming you have both frameworks installed (and rebooted the machine afterwards), then from the IIS Manager you would open the Properties dialog for the IIS "component" (i.e. "level") you wish to switch. When I say "component" or "level" I'm referring to the fact that inside the IIS manager, it is possible to open the Properties dialog for 3 different "levels".

  • For ALL websites the node labeled "Web Sites" (whis is global for all sites)
  • The node for an indididual website
  • Or the properties for an individual Virtual Directory (VD) within a specific website

How you installed BD summer color error .asp id (global in the GAC, for a specific website, or for a specific VD) will decide for which "level" you should open the Properties Dialog inside the IIS manager.

Once you have the properties dialog up, go to the tab labeled "sprers.eu" and select (from the drop-down list) the .NET version you want that "level" to use. Apply the change.
All of this so far is just .NET "stuff" and really has nothing to do with BlueDragon.

If using BlueDragon .NET then you could immediately go to the tab named "Home Directory" (or "Virtual Directory" if your "level" is a VD) on that same Properties dialog, and click the "Configuration" button and verify that your .cfm. cfml, and .cfc mappings there are pointing to the correct version of the .NET framework.
Note that BD will not support .NETit will only support .NET So BD won't support this sort of framework version "switching".
Also note that if you installed .NET *after* BD .NET was already installed, then certain BD-related components needed to support .NET were not installed (since .NET was not present at BD install time). So you'd need to uninstall BD and then reinstall it with .NET being present on the machine before BD could run on .NET

BlueDragon
Administration, Installation, Security
How does IIS determine which account sprers.eu requests run under?
The account that sprers.eu requests run under is determined by the following algorithm:

1) If sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests, summer color error .asp id.

2) If sprers.eu doesn't contain an <identity> element and sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests.

3) If impersonation is disabled then:

  • with IIS 5 and earlier, sprers.eu will run under the user specified in the <processModel> element of sprers.eu The <processModel> element cannot appear in sprers.eu
  • with IIS 6, sprers.eu will run under the application pool identity of the application pool it is configured to run under.
The following sprers.eu code can be used to determine which user sprers.eu requests are running under: <%@ Page Language="vb" %> <html> <head> summer color error .asp id sprers.eu Page</title> <script runat="server"> Sub SayHello() sprers.eu( "Hello, " & sprers.eurent().Name ) End Sub </script> </head> <body> <% SayHello %> </body> </html>
BlueDragon
Administration, General Info
What is the difference between managed CFX tags and unmanaged CFX tags in BlueDragon .NET?
BlueDragon/.NET does not support unmanaged CFX tags. An unmanaged CFX tag is a C++ CFX compiled with a standard C++ compiler (in other words, have not been compiled to .NET). C++ CFXs can be recompiled to be "managed" using Visual sprers.eu (or more specifically, managed C++).

See the CFX directory where BlueDragon/.Net is installed for more 404 errors funny on how to compile a CFX (Java or C++) for use with BlueDragon/.NET.

Also, see FAQ for more information on using Java CFXs in .NET.

If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Also, the .NET Framework libraries may offer an alternative solution to the need.

If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may be able to work with the vendor to help them recompile the CFX for use with .NET. Contact us, or have them do so, at this account.

BlueDragon
Administration
When I try to run a page using sprers.eu, summer color error .asp id, I get an error stating that &#;The resource cannot be found&#; and &#;The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, summer color error .asp id, or is temporarily unavailable. &#; But the web site is properly defined and points to the proper docroot. What gives?
The .NET framework is quite sensitive to the web site doroot being entered in IIS *without* a trailing slash, summer color error .asp id. If you've defined the docroot to be c:\inetpub\wwwroot\, summer color error .asp id, change it to just c:\inetpub\wwwroot.
BlueDragon
Administration, General Info
Why can&#;t I find a \config folder after installing sprers.eu?
The config folder for sprers.eu is not created until the first request. Try requesting sprers.eu
BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why didn&#;t BlueDragon find the IIS installation?
This a known problem for versions older than BlueDragon in which BlueDragon does not find the IIS installation because of a missing "Scripts" virtual directory and associated Windows Registry entry, summer color error .asp id. This will be fixed in an upcoming release of BlueDragon This FAQ was written in

To workaround the problem, create a virtual directory named "Scripts" in the IIS configuration. This virtual directory typically points to the physical directory. After creating "Scripts", restart IIS. The restart is ABSOLUTELY NECESSARY since it creates a Windows Registry entry that BlueDragon requires. After the restart, restart or reinstall BlueDragon and it should recognize the IIS installation.

BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why doesn&#;t BlueDragon find my Apache installation?
The solution to this challenge depends on the edition of BlueDragon that you're running.

First, BlueDragon Server (free edition) only supports Apache on Linux. If you're running it on Windows, you will not be presented the opportunity to integrate with Apache, even if you have it installed.

If you're running the BlueDragon Server JX edition, consider the following:

In recent Apache for Windows releases (e.g. ), the installer allows a selection between installation for a specific user or as a system service. BlueDragon currently has some difficulty detecting this "specific user"/non-system installation and therefore does not allow the BlueDragon adapter to be installed.

However if the user used to run BlueDragon is changed to the same as used for Apache, BlueDragon will detect Apache and allow adapter installation. This requires that both Apache and BlueDragon be installed first, then the BlueDragon user changed to match that of Apache, summer color error .asp id.

This is done using the following steps.

  1. From the Services control panel, select the "BlueDragon Server" (or "BlueDragon Server JX") service and then the properties icon.
  2. On the properties panel select the summer color error .asp id On" tab.
  3. Next change the "Log on as:" setting from "Local System account" to "This account" and enter the account name that matches the account used by Apache.
  4. After "Apply"ing the changes, restart the BlueDragon service.
  5. An entry for the Apache server will now appear on the "web server adapter" page of the BlueDragon Administration Console and configuration can be completed.

Finally, if you continue to have challenges integrating with Apache, please see other FAQ entries that refer to Apache.

BlueDragon
Administration, Installation, Known Limitations and Workarounds, Web Server Support
Why doesn&#;t BlueDragon operate on the virtual hosts defined in IIS?
Symptoms of this occuring are that a request for a ".cfm" page will return the raw data which activates the browser "Save As" or "Enter file to save to" or "File Download" popup. These same symptoms may also occur for requests with the other extensions supported by BlueDragon including ".cfml", ".cfc", and ".jsp", summer color error .asp id.

Prior to and including BlueDragon Serverthe "Scripts" virtual directory was required to be defined for each virtual host within IIS. If not defined, the installed BlueDragon filter was not recognized and therefore ".cfm" pages not processed by BlueDragon.

After and including BlueDragon Serverthis problem is most likely the result of the removal or replacement of the "Application Mapping" for ".cfm" in the virtual host definition. BlueDragon Server installs "application mappings" to ONLY the Master Properties of an IIS installation. These master properties may be overridden by "application mappings" defined for the specific virtual host.

DataSource
BlueDragon
DataSource, Web Services
I&#;m trying to set up an sprers.eu page to return a Datatable to a CFML page as a web service. I get an error in asp.net error web.config ASMX page. What&#;s wrong?
If you receive any of the following errors .NET errors while trying to create/process a .NET web service (ASMX file), this FAQ applies to you:
  • sprers.euportedException: Cannot serialize member sprers.eu of type sprers.eu because it is an interface.
  • sprers.eulation cannot be serialized because it does not have summer color error .asp id default public constructor.
  • Internal Server Error. Unable to request "http://
The problem, of course, is not a CFML (or BlueDragon) error, since it's happening in the ASMX page (the sprers.eu web service page). It's due to an error in .NET where datatables cannot be returned in web service calls, summer color error .asp id. Since we show examples of passing datatables between CFML and sprers.eu, summer color error .asp id, this problem may become apparentto those doing experimentation with sprers.eu web services.

The good news is that there is a Microsoft Technote explaining the problem. The bad news, again, is that you cannot pass a .NET datatable via a web service, because they are not themselves serializable. You can, however, return a dataset (containing the datatable). The technote shows very clear examples of how to solve the problem, summer color error .asp id.

Their solution will indeed work. You just need to know how to grab a table out of the dataset, in order to process that in CFML.

If you use the example at the technote page, you could use the following CFML to obtain the "Authors" datatable within CFML (and of course, this would work for any code where the dataset contains a table, if you just name the proper table):

<cfset table=sprers.eu_tables().get_Item("Authors")>
<cfoutput query="table">

BlueDragon
DataSource, Known Limitations and Workarounds
Why can&#;t BlueDragon detect my Access odbc datasource on my bit machine?
Microsoft has not made a bit odbc driver for Access so you can only configure it using the bit odbc manager. If BlueDragon is launched as a bit app then it won't be able to see the bit datasources.
If you have a bit machine and you must use an Access ODBC datasource, summer color error .asp id, the only solution is to install a bit Windows OS on your bit machine and then run BlueDragon's bit installer.
BlueDragon
DataSource
Why can&#;t I update an Access database with BlueDragon for the Microsoft .NET Framework?
When trying to update an Access database using BlueDragon/.NET, you may receive the error: "Operation must use an updateable query". This is a problem not caused by Summer color error .asp id but instead the .NET framework. Indeed, the problem is discussed in summer color error .asp id Microsoft Knowledge Base article, sprers.eu?scid=kb;en-us;

The simplest solution may be to edit the security properties for the MDB file (using Windows Explorer, right-click on the MDB file, choose properties, then the "security" tab). Add the sprers.eu acccount (or "everyone") as a user (choose "add", then "advanced", then "find now", and select "ASPNET" or "everyone"), and give that user "modify" and "write" permissions.

You could also set this security not just at the file (mdb) level but at the directory level, for the directory holding this file (or other files) that you want to edit in a .NET web application (such as BlueDragon/.NET), summer color error .asp id.

If you have opened the file in a currently running instance of BlueDragon or ColdFusion (or Access) before making that change, you'll see that the directory where the MDB is stored will now have an LDB file of the same name. In this case, the change you've made won't take effect until you restart whatever app(s) had opened the file (which will release this LDB lock file and make it disappear). In the case of BlueDragon/.NET, you'd want to restart IIS (or restart the web application, as discussed in the BlueDragon/.NET documentation) to make that LDB file go away.

Once the file is gone, the change to summer color error .asp id will take effect and the next refresh of the page doing the database update should work as expected.

BlueDragon
DataSource, Security
With sprers.eu, can a SQL Server datasource be configured to use a trusted connection (Windows Authentication)?
Yes this is possible but does require some configuration, due to security restrictions in .NET. Also, the changes required depend on whether IIS and SQL Server are running on the same machine. (You can also work-around this temporarily, which may make sense in some cases, as discussed at the end of this FAQ.)

If IIS and SQL Server are running on the same machine then follow these steps:

- determine which account sprers.eu requests run under as described in FAQ #
- make sure this user has permission to error c2065 x undeclared identifier the SQL Server databases
- when configuring the datasource be sure to set the Server Name field to "" and the Connection String field to "trusted_connection=true"

If IIS and SQL Server are running on different machines then summer color error .asp id will need to use impersonation in IIS in order to use a domain account that can be seen by SQL Server. Refer to the following Microsoft knowledge base article for more information on impersonation:

sprers.eu

Be sure also to select an account that would have permissions on the server running IIS to write to the files that the user running .NET would have had, such as the .NET framework temporary directory location (which might be C:\WINDOWS\sprers.eu\Framework\v\Temporary sprers.eu Files), and the C:\sprers.eu directory. You could consider looking at what what groups have permissions to those directories and assign the selected user to that group.

Once you have IIS configured for impersonation then follow these steps:

- make sure the domain account used for impersonation has permission to access the SQL Server databases
- when configuring the datasource be sure to set the Connection String field to "trusted_connection=true"

Of course, keep in mind that if you're just getting started with configuring BlueDragon in summer color error .asp id test environment and want to get things running as quickly as possible, you could also just enter the username and password rather than rely on the Trusted Connection feature (and go change that later before moving to production).

Debugging
BlueDragon
Debugging
sprers.eu is not performing as fast as I expected. What are some things I can do to debug this?
  1. The first thing you need to do is turn on debugging in Bluedragon Admin UI. Choose debug settings and check Debug Output in the first table. Then, choose Page Execution times in the second table. Can the slow-down be isolated to a particular page or function?
  2. If you can isolate the problem to a specific page, try using cftimer tag to narrow down the lag to a specific area in your code.
  3. Are there datasource connection issues? Look in Bluedragon Admin UI under Data & Search->Runtime state, summer color error .asp id. Look at the value for Wait Connections for each DataSource connection pool, summer color error .asp id. If Wait Connections is anything above zero, you need to increase your Max Connections value for that datasource, summer color error .asp id. It is configurable in BlueDragon Admin UI-DataSources->Choose that Datasource and increase the Max Connections value.
  4. Look in sprers.eu located in your
BlueDragon
Debugging, Exceptions, General Info
Can I use FusionDebug with BlueDragon?
No, FusionDebug does not work with BlueDragon.
BlueDragon
Debugging
How can I troubleshoot a memory leak involving BlueDragon .NET?
  • Startup the Windows Task Manager and go to the "Processes" tab. Then check the checkbox at the bottom labeled "Show processes from all users". Then click the column header for the column named "Name" (to sort the processes alphabetically by name). Then look for processes named "sprers.eu" At the top of the Task Manager window is a menu from which you may navigate as follows:

    From there you can customize the list of columns to include a column for the PID.
    Note the PID of your sprers.eu process.
    If you have more than 1 w3wp process running you may need to turn off the App Pool that BD .NET is using and take note of which w3wp PIDs remain. Then turn it back on and take note of the newly listed sprers.eu PID (that would be the one in which sprers.eu is running).
    Be sure to configure that App Pool to never recycle itself.
    Then periodically (every day or so) take note of the memory usage of that PID.
    We've done this before for 8 consecutive days in a non-memory-leaking setup. Data collected during the first 7 days suggested an upward trend, but data on the 8th day confirmed that there was no leak. So you may need to watch this across many days to get the truth for your own system. It just depends on how often the .NET garbage collector runs on your system. The highest value we saw in our trivial test was 86, Kilobytes which is tiny and well within acceptable memory usage for an IIS Application Pool
  • IF you can confirm that the memory *trend* of your PID across many days and or weeks is always up (and definitely not down) then please use this information to obtain a memory dump of the running Application Pool process (use the PID) and then please send us that dump.
    We are happy to analyze it here.

    Please know that if the PID memory usage trend is *not* upwards then analyzing a dump would not be useful. The process would need to be in a clear state of "heading towards OutOfMemory" so that the problem could be clearly picked out from the dump. In fact the more "out of balance" the process is the better it would be for analysis purposes.
  • Another tool that could be summer color error .asp id to gather data about a running Application Pool process (sprers.eu) is the Microsoft Debug Diagnostic Tool v It can be used to both generate and analyze a dump of most any Windows process. summer color error .asp id colspan="2">
    BlueDragon
    Debugging
    I&#;m running BD .NET and seeing a &#;generic&#; .NET error response in my browser that&#;s not too helpful. What&#;s wrong?

    One example of such a response is:



    You can configure your .NET webapp (BD-enabled or runtime error 5 to possibly give a more useful error message by adding:

    to the sprers.eu file of your .NET webapp, or to the sprers.eu file.

    NOTE:
    BD (all configurations, not just .NET) summer color error .asp id catches "Throwable" even if your CFM pages contains a <cfcatch> whose. In that scenario, BD catches BD-defined Exceptions, and sprers.eueException.
    That means that if the Exception or Error is some other one such as a JVM-specific one (or a .NET framework-specific one), or one that's specific to certain operations such as an XML Parsing Exception, or perhaps one that's thrown by the "Container" such as the .NET Framework or Sun's JVM then cfcatch won't catch it.
    The reason is because BD makes calls to the APIs provided by either .NET or the JVM, and those calls may throw errors/exceptions that don't relate to the CF world. In that case, it's not caught by BD, it bubbles up to the "Container" inside which BD runs.
    At summer color error .asp id point it's out of BD's hands.
    This is why you'd see a "generic" .NET error (or JVM error) in the first place and also why you'd want to turn customErrors off in the .NET webapp so that the .NET framework won't hide the true problem from you.

BlueDragon
Debugging, General Info
My memory usage is running very high and escalating in BD JX. This is causing my performance to lag. What should I look for?
This could be caused by a very large number of cached queries. Your cache count may be at the max, which by default is In BlueDragon Admin Console-Application->Caching you will see a value for Queries in Cache. If this value is at its maximum, you should either edit your sprers.eu to increase this value, or you should consider whether your application needs debugging to reduce the number of queries you are caching. If you choose to increase the value of <cachecount>, simply add this element under the <cfquery> element and try changing the size to <cachecount></cachecount>
In BlueDragon 7.X versions, you can edit your cache size in BlueDragon Admin ->Application ->Caching. No manual edits summer color error .asp id the sprers.eu are required for newer version of BlueDragon.
BlueDragon, ServletExec
Debugging
What is DBMON and how do I use it ?
DBMON stands for Debug Monitor.
New Atlanta does not make DBMON.
DBMON is a debugging tool created by Microsoft which has been bundled with Windows installations of ServletExec. It captures and displays program output from programs that are written to do this. Both ServletExec ISAPI and ServletExec NSAPI on Windows are written to do this, they will send any sprers.eun() output to both DBMON and sprers.eu
If you are running SE AS (out-of-process version of SE) then you'll find that your output emitted by your Servlets and JSPs is not captured by DBMON. This is because DBMON is a native (non-Java) program, and it cannot capture output that comes from a java program. Any output that you see in DBMON must have come from a native program. The only time that you would ever get to see your output emitted by your Servlets and JSPs, captured in DBMON is if you were running a version of ServletExec which runs in-process with the web server (ISAPI or NSAPI), because then the SE Java code can make a native callback to tell the native webserver to output the message to DBMON.
DBMON is discussed in the "Developing Servlets" chapter of the ServletExec User Guide (for example, in the SE User Guide this is section ). If you have program output in DBMON that you need to copy to your clipboard, here is how you do this:
  1. In the upper-left corner of the DBMON window, left-click the C:\ icon once.
  2. From the pulldown menu choose Edit - Mark
  3. Now highlight the DBMON output you wish to put on your clipboard
  4. Hit Enter on your keyboard to place the text on your clipboard
  5. Paste the captured output to an email or text file or wherever you wish.

Note that DBMON will not show you anything if you are accessing the machine remotely via terminal services or possibly other remote access software. This is a limitation of DBMON. In this case you would need to examine sprers.eu to see the messages. sprers.eu has the added benefit of timestamps for each entry, DBMON output does not provide timestamps.

Another debugging tool which works similar to DBMON but also works when run remotely is DebugView. DebugView is freely downloadable from:
sprers.eu

If the above link does not lead you to the DebugView download page, then please be aware that Microsoft appears to be the new owner of DebugView. You might find it citrix license acquisition error 500.

Note that in our testing with remote use of DebugView we found that we had to enable Global Win32 from the capture menu in order to see any generated output remotely and we found that we had to do that twice before that setting would actually "stick".
BlueDragon
Debugging, Exceptions
When I run a .NET page, summer color error .asp id, I get a .NET &#;Configuration Error&#; stating that &#;It is an error to use a section registered as allowDefinition=&#;MachineToApplication&#; beyond application level.&#; What&#;s up with that?
This error generally indicates that you've got code in a directory that's not been defined to .NET (by way of IIS) to be an "application". Some xml directives in the .NET sprers.eu file cannot be run in a simple directory, and can only be executed in an "application" root (whether a web site root, a virtual directory root, or an application declared in IIS to be an "application").

To solve this problem, declare the directory to be an application. This notion of declaring a directory is discussed further in the manual, summer color error .asp id, Deploying CFML on sprers.eu.

BlueDragon, JTurbo, ServletExec
Debugging, General Info, Installation
Where are the Interest List Archives for ServletExec, JTurbo, and/or BlueDragon?
It is no longer possible to post new messages to the Interest List Archives for any of New Atlanta's products as they have been replaced with the New Atlanta Product Forums. However, it is is still possible to search the Interest List archives for answers to previously asked questions using the links below:
Each of deve home sensor error xerox Interest List archives represent years of details technical information and are an extremely valuable tool in solving various issues that you may encounter.
Exceptions
BlueDragon
Exceptions, General Info, Installation
I get NoClassDef and other errors trying to process images on BlueDragon Server or Server JX on Linux systems. What&#;s wrong?
The problem generally is related to running the Linux system in "headless" mode. See the BlueDragon Server and Server JX Installation Guide, and the section "Graphics Rendering Operations on a Headless Linux System" for more information and a possible solution.
BlueDragon
Exceptions, Supported Features, System Requirements
I&#;m having problems using CFMAIL in the BlueDragon/J2EE edition on some servers, such as Tomcat 5. What does &#;NoClassDefFoundError&#; mean?
If you attempt to use CFMAIL when deployed on Tomcat 5 (and Jetty, it seems), it will fail with a NoClassDefFoundError. The problem is that Tomcat 5 simply doesn't include the necessary javamail (and "beans activation framework") libraries that CFMAIL relies on.

You can obtain these libraries (jars) from sprers.eu, then move the needed sprers.eu and sprers.eu files into the the WEB-INF/lib directory a your web application (and restart your web application). If you want to solve the problem for all web applications, you need to move it to the appropriate place for the J2EE server/servlet engine you are using.

For Tomcat 5, you can place it into either the $CATALINA_BASE/shared/lib or the jre/lib/ext folder of the JDK location being used by Tomcat (or other J2EE servers).

(Appendix I of the "Deploying CFML on J2EE Servers" manual in the documentation set incorrectly states that the sprers.eu and sprers.eu can be found in the WEB-INF/opt directory of the BlueDragon web app. That is not true.)

You can also find more on these issues at:

BlueDragon
Exceptions, General Info, Known Limitations and Workarounds, Miscellaneous
What sort of configuration edits are needed with sprers.eu to allow large uploads summer color error .asp id IIS7?
If you are trying to upload a large file using sprers.eu on IIS7, you may get an error:

HTTP Error - Not Found
The request filtering module is configured to deny a request that exceeds the request content length.

In sprers.eu, find the requestfiltering element and add:

<requestFiltering>
<requestLimits maxAllowedContentLength="" />

Note that the value for maxAllowedContentLength is in bytes.
After you get past this error, you may then get a different http error: Maximum request length exceeded.
You should open sprers.eu and add:
<httpRuntime maxRequestLength="" />
as described in BlueDragon FAQ This value is in kilobytes.
BlueDragon
Exceptions, General Info
When I try to use a cfchart tag in IIS, I can&#;t get the image to display. How do I resolve this?
First, check your extension mappings in IIS and make sure that .cfchart is correctly mapped to \BlueDragon installation\bin\isapi\BlueDragon_sprers.eu Extensions are mapped in IIS Management\Web Site Properties\Home Directory tab\Configuration button.
Second, highlight .cfchart extension and choose the Edit button. Make sure to UNcheck the option 'Check that File Exists'.
General Info
BlueDragon
General Info
Are there any hosting providers offering BlueDragon?
Yes, there are now several companies offering BlueDragon hosting. Visit our TrueBlue Partner Directory for a list of our hosting partners. If you are interested in becoming a hosting partner (or want to recommend it to your hosting provider), we summer color error .asp id a generous hosting partner program.
BlueDragon
General Info, Installation, Web Server Support
BlueDragon is not working on my Windows machine. I get &#;The system cannot find the path specified&#; error. Would a previous installation of CFMX be a factor in this problem?

The CFMX installer creates a "WildCard Application Mapping" in IIS 6 (and even leaves it there after an uninstall of CFMX!).
This effectively blocks requests from ever being passed to BlueDragon.
IIS continues to pass requests over to a CFMX installation that's not there anymore (yuck!)
Solution:
Look in your IIS management and remove any wildcard application mappings to ColdFusion.

Here is one way to make that configuration change (with IIS 6 for example):

  1. Right-click on "My Computer" and choose "manage"
  2. In the lower-left corner, expand the "Services and Applications" node
  3. Expand the "Internet Information Services" node
  4. Right-click the "Web Sites" node and open it's Properties
  5. Go to the "Home Directory" tab
  6. Click the "Configuration" button
  7. At the bottom of that dialog, select and remove any Wildcard mappings.

With the wildcard in place, all requests are still being routed to CFMX summer color error .asp id.

BlueDragon
General Info
Can I generate an Excel spreadsheet from BlueDragon?
Yes, it's long been possible to generate Microsoft Excel files from CFML. Excel has a feature that allows an HTML table to be turned into a spreadsheet, so it's simply a matter of using CFML to produce the desired table, then using CFCONTENT to indicate that you're generating a file that should be processed as a spreadsheet. The spreadsheet will open either embedded in the browser or by opening Excel, summer color error .asp id, as determined by the configuration of the user's machine.

Following is an example. Simply copy and paste the CFML below into a CFML page on your server to test, then change to suit your own needs.

And if you're interested in doing the same thing but without need to name each column (just want to dump all the columns in the CFQUERY), use this code instead to replace the table-generating tags at the very bottom of the example above:

BlueDragon
General Info, Known Limitations and Workarounds
Can I generate charts and graphs in BlueDragon?
Yes, this can be done using the CFCHART tag which was added to BlueDragon
BlueDragon
General Info, Known Limitations and Workarounds
Can I generate PDFs in BlueDragon?
Yes, it's possible right now to generate PDFs in BlueDragon, any number of ways. Some are commercial products, though with free trial editions. Others are free but require slightly more work, typically using CFOBJECT to call a Java library.
  • CF_PDF, a free custom tag which generates PDF. Sample code is included in the comments for the custom tag. Note that its FILE attribute requires a full path to the output file to create.
  • CFX_PDF, a commercial tag which, while currently protected using CFENCODE, will soon be available using BlueDragon approach to protecting code. Contact Charlie for more information.
  • FOP, a free Java library for generating PDFs among other things. The link provided is to a CFDJ article on integrating it with CFML. See the "feedback" link at the bottom of the article to find comments made by New Atlanta CTO, Charlie Arehart, on how to integrate that approach in BlueDragon.
  • HTML2PDF, summer color error .asp id, a commercial solution (which is based on HTMLDOC
  • iText, a free java library which can be used and called from within BlueDragon CFML pages using CFOBJECT

It may be useful to note, as well, summer color error .asp id, that if you already have a PDF and want to fill it in using the FDF feature of PDF, you summer color error .asp id do that from within CFML, as this tip explains (thanks Dale Smith for pointing that out).

Additional FAQs or docs may be developed to expand on the details of using one or more of these alternatives.

Additionally, see FAQ for more information on adding CFMX 7's specific tags for supporting features like PDF generation. But as this FAQ explains, you don't need to wait for that if you need these features now.

BlueDragon
General Info, Supported Features
Can I really bundle BlueDragon with my CFML application, to sell it as a solution, summer color error .asp id, with BlueDragon costing me less than the list price?
Yes, indeed. We do permit you to distribute a CFML application bundled with any edition of BlueDragon for commercial deployment use. While you must obtain a redistribution license from us to this, the amazing thing is that you may not need to pay the full price for BD to do this.

Consider a ColdFusion developer who wants to somehow bundle their CFML app with ColdFusion: they'd traditionally expect to have to pay $1, per deployment. If you want to do of these, for some product that you want to sell for $, or even $1, the economics just won't work, because you have to add in the $1, for CF. (And if you wanted to deploy on a J2EE server, with CFMX the cost for the Enterprise edition that permits this is $5,). Now, our pricing page shows that the list price of BlueDragon is already less than CF.

But if you want to bundle (or we call it redistribute) your CFML app using BlueDragon (any edition, from the standalone Server edition to the J2EE edition or even our .NET edition), you may not have to pay anywhere near the full retail price. of BlueDragon

Instead, the payment can be a royalty based on your product's sales price. The percentage is surprisingly low (but obviously if you have a $ product, it means you won't be paying any more than $ per license). That's not a typo. Now you're product no longer costs (your price + price of ColdFusion) but instead (your price + a percent of your price, for BD). Of course, if your product price is so high that even the percentage exceeds our list price, then you won't pay any more than the list price.

We figure you're helping sell BD into places we never would--and we restrict the use of BD in this arrangement so it's only to be used to run your app, not any other your customer might want to build.

If the idea interests you, please contact our Sales team.

The bottom line is that we want to help you succeed and build a business based on your CFML skills and applications, where you might previously never have even thought of it.

Protecting Your Code: Note, as well, that you can summer color error .asp id your code so that your clients cannot look at your CFML source, and it's not just an encoding as the CFCRYPT/CFENCODE utility required. We call it "precompiling" code, and you can apply the protection to some or all of your CFML templates (in case you need to leave some of your code unprotected for the end-users to edit). You can learn more about this at a FAQ of ours, Can you explain more about the possibility of encrypting and precompiling templates in BlueDragon. This is another way in which those packaging a CFML app can find entirely new markets, or can lower their price because they previously priced it high to protect against loss of their intellectual property.

Expiring Your Code as a Trial: Still another great opportunity for deploying your CFML as a bundled application is that BlueDragon offers something ColdFusion never has. Using the precompiled templates feature discussed above, you can now also set an expiration date for your code. Note that this is not an expiration of the BlueDragon engine, but just of your code. And again, you can expire some or all of your code, as needed.

BlueDragon
General Info, Installation
Do I have to pay to evaluate BlueDragon? Does BlueDragon offer trial and free development editions?
All editions of BlueDragon are available for free evaluation, and for ongoing single-IP development use beyond that evaluation period. There are 4 editions, and this FAQ discusses each.

sprers.eu

The sprers.eu edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

BlueDragon Server JX

The BlueDragon Server JX edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

BlueDragon Server

The BlueDragon Server edition has no trial or developer edition, because it's free for production deployment, subject to licensing restrictions. See the BlueDragon License Agreement for details.

BlueDragon J2EE

The BlueDragon J2EE edition starts out as a single-IP developer edition (because there is symbol referencing errors. no output written to installer, summer color error .asp id, so no means to create a trial license key). Instead, an email will be sent to the downloading user which will offer a day trial license key.

Converting to a Fully Licensed Edition

Finally, note that all editions can be converted to a fully licensed edition simply by obtaining and implementing a valid production license key (using the BlueDragon Admin console). See FAQ for information (and a warning) about updating the current trial/developer license key.

Does BlueDragon Charge for Use on Shared Testing and Development Servers?

Contact BlueDragon Sales to discuss options for testing and shared development servers.
BlueDragon
General Info, Version differences
Does BlueDragon/.NET support .NET ? How about SQL Server ?
While .NET and SQL Server are still in beta, they are not supported formally in New Atlanta products. We've tested BD/.NET on .NET and while some features work, there are known issues that make it unusable for production. We've not done any testing with SQL Server and BlueDragon. When .NET and SQL Server are released by Microsoft for production use (beyond the "Go Live" license option), summer color error .asp id, we'll support them with BD/.NET. Until then, they're not formally supported.
BlueDragon
General Info, Version differences
Does New Atlanta plan to support the features in CFMX 7 in BlueDragon?
Yes, New Atlanta is investigating features to be added for our BlueDragon 7 release, scheduled for later in Whether and when we implement specific ColdFusion ® MX 7 features will be determined by the reaction of the overall ColdFusion community to the new features and--most importantly--the feedback we get from BlueDragon customers and prospects.

It's worth noting that some features added in CFMX 7 (and ) are things that BlueDragon has long had:

  • sourceless deployment (we've had it since BlueDragonand we've added an expiration date enhancement in )
  • deployment on OS X in standalone mode (we've had that since )
  • standard WAR file deployment, with no post-deployment wizard (since )
  • passing XSTL parameters on XMLTransform() (since )
  • proper support of sprers.eu_info (see this BlueDragon blog entry)
  • and more
Still, we realize people are looking for some of the things CFMX 7 has added which BlueDragon summer color error .asp id has not.

Note that many of the features can be made available now on BlueDragon (and indeed ColdFusion MX 6) by way of calls to underlying Java libraries or tools that CFMX 7 merely wraps up into tags. This may permit some to enable the functionality on their own at least until we determine which we will add and when we will add them.

For instance, PDF generation in CFMX 7 is done using the iText java library and related tools, which can be called from within CFML using CFOBJECT, summer color error .asp id. The reporting is done via JasperReports, also callable right now from CFML. (For those interested in Reporting solutions, see FAQ ).

And the Flash forms feature leverages a subset of Flex (Macromedia's XML-based Flash generator) which has been embedded into CFMX 7. While we won't be embedding Flex into BlueDragon (the licensing costs would be prohibitive), most of the same kind of components can be generated using OpenLaszlo, another XML-based Flash generator that actually predates Flex. Summer color error .asp id can be used with BlueDragon right now, and we are investigating bundling Laszlo into BlueDragon in the future. Laszlo Release 3 adds still more powerful capabilities that we hope to leverage. See FAQ for more information on integrating BlueDragon and Flash today.

Further, many may not really want *Flash* forms particularly, but just more effective user interfaces (grids, calendars, accordions, and such) without complicated programming and without reliance on Java (as CFFORM does prior to CFMX 7). Many of these interface controls are available in a variety of free and commercial packages, which can be easily integrated into CFML (and those using sprers.eu can leverage sprers.eu's powerful forms features). Also, many of those leverage Ajax functionality, which can certainly integrate with CFML ogasoda character generator error BlueDragon. Look for more information to come from us on these possibilities. In particular, see this blog entry on a unique option available right now.

As for the Event Gateway, New Atlanta had started work on an equivalent feature and stopped when we heard CFMX 7 would add one. Like other feature, we want to wait and see what the community (and our customers) think of the various approaches Macromedia has followed in adding these features, so that we give our customers the best experience and the greatest value.

As for the sprers.eu, that's something that can be simulated using the event handlers of the servlet API (on Servlets compliant engines) or via the sprers.eu file on .NET.

If you wish to express an opinion for features you're interested, you can contact [email protected]

BlueDragon
General Info, Installation, System Requirements
How can I determine whether service packs are installed on the .NET Framework?
Microsoft has written the following Knowledge Base article to help customers answer this question: sprers.eu
BlueDragon
General Info
How can I get the Macromedia Example applications to run with BlueDragon?
The Macromedia example CFML applications (which come with CF4, 5, and Summer color error .asp id can be used to demonstrate CFML running on BlueDragon. We do not provide these examples, but if you have installed ColdFusion 5 or MX on your machine, and you chose to install the example applications, they can be found at /cfdocs/exampleapps/sprers.eu in your web site's document root.

If you do not already have a datasource defined for ExampleApps, create one and point to the database file as appropriate for your operating system. In the case of CF5 on Windows, the sprers.eu can be found in C:\CFusion\database. For CFMX on Windows, it can be found in C:\CFusionMX\db.

The CF 5 examples will for the most part run unchanged.

On CFMX, the examples do require a change to one file to remove reference to the undocumented sprers.eueFactory class which BlueDragon does not support. See /cfdocs/exampleapps/global_sprers.eu, which is included from the exampleapps/sprers.eu summer color error .asp id. You can comment out all the CFSCRIPT lines following

sprers.eu = "ExampleApps";
and then ensure just the following lines are not commented:
sprers.eu = "ucase";
sprers.euss = true;
If you're not on Windows, then the values should be:
sprers.eu = "ucase";
sprers.euss = false;
Other than that, most of the examples will run, which is a useful way to demonstrate standard CFML running on BlueDragon. Some of the examples do use tags or functions that are not supported. See the BlueDragon CFML Compatibility Guide for more information on unsupported CFML features.
BlueDragon
General Info, Known Limitations and Workarounds, Miscellaneous
How can I upload a file to my .NET webapp (BD-enabled or not) that is larger than 4 Mb?
In .NET, there is a default limit on the size of any web request of about 4 Mb. This is defined in the sprers.eu file. If you need to accomodate larger requests, you can override the setting in your website's own sprers.eu file by putting this tag inside the "sprers.eu" section, like this (for example):

Note, that the number is in Kilobytes, so 80, represents 80 Mb.
BlueDragon
General Info
How do I enable clustering in BlueDragon .NET ?
In order for Session scope variables to be shared across the cluster, two things need to be done:

1. sprers.eu needs to be configured to use State Server or SQL Server sessions.
2, summer color error .asp id. sprers.eu needs to be configured to use sprers.eu sessions, summer color error .asp id.
BlueDragon
General Info, Security
In IIS7, my application pool is running under ApplicationPoolIdentity. How can I give this user file permissions when it doesn&#;t show up as a User?
You can add the app pool identy from a command prompt like this:
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
Then, you can edit the security permissions through Windows Explorer.
BlueDragon
General Info, System Requirements, Web Server Support
In the .NET edition of BlueDragon, I find that while I can run my CFML pages, when I try to access the BlueDragon Admin console I get &#;file not found&#; errors. What gives?
The problem here occurs if you manually configure the IIS mapping page to set the file extensions (like CFM and CFC). There is an option there, called "check that file exists", which is enabled by default when you add a new mapping. You must turn that feature off. The BlueDragon admin console pages do not really exist (as explained in the documentation), so enabling this option causes the error.
BlueDragon
General Info, Installation, Known Limitations and Workarounds, Product Requirements
Is BlueDragon supported on CentOS?
Yes, although CentOS is not fully supported. We don't test on CentOS but understand that it is directly derived from RedHat Enterprise Linux, summer color error .asp id, which we do support. This choice of platforms may result in some problems which we cannot predict nor possibly resolve.
BlueDragon
General Info, Known Limitations and Workarounds
Is it true that Microsoft is retiring its Visual J# product? If there are no future development plans for Visual J#, how will this effect BlueDragon .NET?
Microsoft is supporting Visual J# throughas stated on their web site:

sprers.eu

Visual J# and sprers.eu are fully supported on bit and bit editions of Windows Vista and Windows Server (sprers.eu was one of the first software products to receive Windows Server logo certification).

Our plans are to re-engineer sprers.eu to remove the requirement for Visual J# prior to the release of the successor to Windows Server

BlueDragon
General Info
The application pool that sprers.eu runs under is configured to shutdown under certain conditions. On low traffic sites this causes things like scheduled tasks to not run until the site receives another request. Is there a way around this problem?
The best solution is to configure the application pool to not shutdown summer color error .asp id certain conditions. This is done by right-clicking on the application pool and selecting properties. On the Recycling tab, uncheck the first three check boxes. On the Performance tab, summer color error .asp id, uncheck the Idle timeout check box.

You can also place the following code in the Application_End() method of sprers.eu so when sprers.eu is shutdown it will immediately be brought back up:

sprers.eubRequest req = (sprers.eubRequest)sprers.eu("http:///sprers.eu"); sprers.eubResponse rsp = (sprers.eubResponse)sprers.euponse(); sprers.eu();

Note that the above change will only help with application pool recycles. If the machine is restarted then the site won't come back up until it receives a request. The workaround for this is to create a Windows scheduled task that runs at start up time and sends a request to the site.

BlueDragon
General Info
Why can&#;t I get my cfml pages to be served from a shared network drive? I keep getting File Not Found.
The "File not found" reported by BlueDragon Server is due to its inability to access the CFML templates on the remote share that is configured as the IIS home directory. Just as IIS had to be configured with credentials (an account and password) to access this remote share, so must BlueDragon Server. By default, summer color error .asp id, the BlueDragon Server service is installed to run using the "Local System" account. This account must be changed to one who is authorized to access the remote files using the "Log On" tab of the service's properties. Setting it to the same account as used within IIS is recommended.
BlueDragon
General Info, Security
With sprers.eu, can the CFLDAP tag be used with SSL?
The CFLDAP tag can be used with SSL using the following steps:
  1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
  2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
  3. Install the LDAP server's certificate into your computer's certificate store. This is described at sprers.eu

If you don't install the LDAP server's certificate in your computer's certificate store then you'll receive the following General Runtime Error:

sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

BlueDragon
General Info, Security
With BD/Java, can the CFLDAP tag be used with SSL?
The CFLDAP tag can be used with Summer color error .asp id using the following steps:
  1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
  2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
  3. Install the LDAP server's certificate in the database of trusted certificates for the JRE being used by BD JX or BD JEE, summer color error .asp id. This is done from the command line using the following steps:
    • cd JAVA_HOME/lib/security
    • if JAVA_HOME/lib/security contains a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
      • keytool -import -file ldap_server_sprers.eu -keystore jssecacerts
    • if JAVA_HOME/lib/security doesn't contain a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
      • keytool -import -file ldap_server_sprers.eu -keystore cacerts
  4. Restart either the BD JX service or the application server that BD JEE is running behind so that BD will pick up the changes made to the database of trusted certificates.

For example, if BD J2EE is running with JDK on Windows then the value of JAVA_HOME for the JRE would be: C:\Program Files\Java\jdk\jre.

If you don't install the LDAP server's certificate in your JRE's database of trusted certificates then you'll receive the following General Runtime Error:

sprers.euicationException: simple bind failed: sprers.eu summer color error .asp id exception is sprers.eudshakeException: sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target]; ROOT CAUSE=sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target

If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

sprers.euicationException: simple bind failed: sprers.eu [Root exception is sprers.eueption: Unrecognized SSL message, plaintext connection?]; ROOT CAUSE=Unrecognized SSL message, plaintext connection?

HTTP Connections
BlueDragon
HTTP Connections
What does BlueDragon do with HTTP authorization headers?
BlueDragon puts HTTP authorization headers into the sprers.eu_AUTHORIZATION variable.
BlueDragon
HTTP Connections, Known Limitations and Workarounds, summer color error .asp id, Miscellaneous
Why do I get the error, &#;BlueDragonRunTimeEngine License Manager : This product is not licensed for this request&#;?
This error means you're running BlueDragon in developer mode and trying to trying to access a CFML page from other than the machine on which it's installed (or at least, BlueDragon thinks that's the case, more on that in a moment).

BlueDragon is available as a developer edition, which allows you to test it without expiration, but it's limited to accept requests only from the server on which it's installed. (You can request a license key for a day trial that removes that limit, or you can purchase a license. In either case, you can place the license key into the appropriate place offered in the BlueDragon Admin console or sprers.eu file.)

So if you're trying to browse CFML pages and your request is coming from other than the server on which BlueDragon is installed, you can:

  • browse the pages from the server on which it's installed
  • use terminal services or SSH, etc., to connect to the server on which it's installed and browse pages from there
  • or install a trial or production license key

Finally, note that the problem may also be you ARE trying to run it from the server on which it's installed but in your URL you're using something other than or localhost, summer color error .asp id. For instance, if your machine is called "test", you may summer color error .asp id that using that in the domain name still fails. Try changing to use either localhost of

Installation
BlueDragon, JTurbo, ServletExec
Installation
An InstallAnywhere-based installer (or other program) won&#;t run on my Windows machine. Why?

First, you should read FAQ # to see if it applies in your case. That FAQ was written with JTurbo in mind, however it may very well apply to any InstallAnwhere-based installer running on Windowsso if that's your case you should try that FAQ first (even if you're not using JTurbo).
If it does NOT apply, or it DOES apply but does not cure the problem, then the problem may be due to an operating system feature that's new in Windows SP1 & Windows XP SP2. That feature is called Data Execution Prevention (DEP). It serves to prevent viruses and other malicious code from ever executing.
Programs that Windows deems to be malicious are stopped cold, and not allowed to run at all.
It's possible to configure DEP so that it excludes certain programs, leaving them alone to do as they wish. To populate the list of applications that DEP will allow to execute, navigate to:

That's where you should add the program(s) you wish DEP to leave alone.
If the program that you add to that list is an summer color error .asp id, then after you successfully install you may want to consider adding that program's uninstaller to the list also. That way its uninstaller will be allowed to execute should you or someone else ever need to uninstall the product.

Here is a more detailed description of how to find the DEP settings plus more information about them:

Open the System Properties dialog:

  • For a Win XP sp2 machine, one way to bring up this dialog is to go to My Computer and click "View System Information".
  • For a Win sp1 machine, one way to bring up this dialog is to go to the Control Panel, summer color error .asp id, and choose System.
Once there, go to the Advanced tab. Click the button labled "Settings" in the category/group labeled "Performance". This brings up the "Performance Options" dialog. Go to the "Data Execution Prevention" tab of that dialog. There are two options for DEP:
  • Turn on DEP for essential Windows programs and services only
  • Turn on DEP for all programs and services except those I select
In our experience, having the 1st option selected alleviates all DEP-related problems from occuring on the machine. The Win XP Professional Help dialog had this to say about DEP:
Data Execution Prevention (DEP) helps prevent damage from viruses and other security threats that attack by running (executing) malicious code from memory locations that only Windows and other programs should use. This type of threat causes damage by taking over one or more memory locations in use by a program. Then it spreads and harms other programs, files, and even your e-mail contacts. Unlike a firewall or antivirus program, DEP does not help prevent harmful programs from being installed on your computer. Instead, it monitors your programs to determine if they use system memory safely. To do terror arctic expedition, DEP software works alone or with compatible microprocessors to mark some memory locations as "non-executable". If a program tries to run code?malicious or not?from a protected location, DEP closes the program and notifies you. DEP can take advantage of software and hardware support. To use DEP, your computer must be running Microsoft Windows XP Service Pack 2 (SP2) or later, or Windows Server Service Pack 1 or later. DEP software alone helps protect against certain types of malicious code attacks but to take full advantage of the protection that DEP can offer, your processor must support "execution protection". This is a hardware-based technology designed to mark memory hp laserjet 4345 49.ff 81 service error as non-executable.
By default, DEP is only turned on for essential Windows operating system programs and services. To help protect more programs with DEP, select Turn on DEP for all programs and services except those I select.

If none of this helps you then you may find the following information to apply in your case:



Some possible workarounds or ways to try to solve this problem include:
  1. Run the installer on another machine and then copy the installed folders to the target machine. Since JTurbo is really just a set of JARs (often only 1 JAR is needed/used by people sprers.eu) and a set of examples and documenation this is fine to do.

  2. OR
  3. Try running the installer on summer color error .asp id problem machine but either:
    • uninstall the JVM there first and maybe reinstall a different JVM version before trying to run the installer

    • OR
    • try running the installer from the command line as described in section of vector mfc error JT Installation Guide (this involves holding down the control key) Or perhaps do so by typing the name of the installer on the command line (not double-clicking) and passing the "-i console" option or maybe even the LAX_DEBUG=true option or maybe even the LAX_VM option as Macrovision describes on their webpage
BlueDragon
Installation, Supported Features
Does BlueDragon run on or at least support integration with iSeries systems (formerly known as AS/&#;s)?
BlueDragon can both run on and/or integrate with iSeries systems.

First, summer color error .asp id, as far as running CFML on iSeries, you can do that with our J2EE edition. (You can also integrate CFML with iSeries summer color error .asp id using our other editions of BlueDragon, Server and Server JX, as will be discussed later). The J2EE edition runs on any J2EE server or servlet engine. IBM's own WebSphere runs on the iSeries platform (see sprers.eu), and there may be other servlet engines/J2EE servers that run on it as well.

Deploying CFML on J2EE is very easy with BlueDragon. Our documentation on the subject, "Deploying CFML on J2EE Application Servers" is available on our web site in the docs page of our self-help area. Also, our CTO, Charlie Arehart, did an article in the April ColdFusion Developers Journal called, "Making the Case for CFML on J2EE". It's available on the CFDJ site at sprers.eu?storyid=&DE=1.

There is also the possibility to integrate from CFML to iSeries data, applications, and components.

First, as may be obvious, you can connect to databases on iSeries using ODBC or JDBC. This (and connecting to applications) is covered in the Dec CFDJ article, "MX to iSeries Demystified", available at sprers.eu?storyid=&DE=1, summer color error .asp id. While the author (and the title) suggest it's somehow CFMX-specific, it is not.

As summer color error .asp id notes, to connect via ODBC you need the "Client Access for iSeries" tool which is a licensed program from IBM. But you can use it, and he shows how to set up datasources in ODBC and JDBC to connect using that. This would work in BlueDragon as well.

But he also points out the available JTOpen open source driver from IBM, and if you dig into that, you'll learn (at sprers.eu#how) that it can link to more than just databases but also the file system, programs, commands, data queues, printers, jobs, messages, and lots more. The CFDJ article explains how to get and use the tool, and the steps summer color error .asp id pretty much the same in BlueDragon.

Still another couple of ways that he doesn't mention are possible, and they're generic to CFML (whether running on BD or CF): you can call Enterprise JavaBeans (running on any J2EE server) using CFOBJECT. Also, you can call a web service on any server using CFINVOKE (and CFOBJECT). These are two generic ways CFML can call any enterprise object on another platform, summer color error .asp id they're a powerful possibility for greater enterprise integration. These latter two approaches don't require that you necessarily be running the CFML on the same server as the iSeries.

So as you can see, beyond just running the CFML on iSeries, you may also open tremendous doors of possibility for integrating your CFML with iSeries. We're happy to help you as you explore these possibilities.

BlueDragon
Installation, Web Server Support
Does BlueDragon support Apache 2?
BlueDragon and above supports Apache 2. See the system requirements page for more information on hardware/software support.

You may experience some challenges with different point releases of Apache 2, depending on the edition and point release of BlueDragon you're running. For registry error windows 7 on known challenges integrating with Apache 2, please search for other FAQ entries referring to "Apache".

BlueDragon
Installation, System Requirements, VM Support
How can I install BlueDragon Server or JX onto a MacOS X system that has Java installed as the default version?
Newer shipments of Apple Mac hardware include both Java and (Java 5), AND have configured the Java 5 version as the default. Since BlueDragon versions prior to do not run on Java 5, the installation will fail. To work around this problem, the default Java version must be changed to Java There are two methods to accomplish this, both will preserve the Java installations (ie they will not be uninstalled). You need only use one of these procedures to have your system use Java as its default Java installation.

Change the Java version via the Runtime Settings:
  1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities > Java > J2SE "
  2. Open the "Java Preferences" application.
  3. Click the drop down lost beside "Use Version" and select "".
  4. Under the "Java Application Runtime Settings" click and hold the "J2SE " listing and drag it to the top of the list, above "J2SE ".
  5. Quit the "Java Preferences" application.
  6. Restart/reboot the system.

Change the symbolic links used to select the default Java version:
  1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities"
  2. Open a "Terminal" application.
  3. Enter: 'su root'
  4. Enter the 'root' password
  5. Enter: 'cd /System/Library/Frameworks/sprers.euork/Versions'
  6. Enter: 'ls -lsa'
  7. The above command should display the following amongst the contents of the directory: "CurrentJDK -> "
  8. Enter: 'ln -shf CurrentJDK'
  9. Verify the change by entering: 'ls -lsa'
  10. The following should now be listed: "CurrentJDK -> "
BlueDragon
Installation
How do I get the BDJX Linux installer to run on a non Graphical Linux System?
A non-graphical Linux system is error a1000 cannot open file that lacks an X11 display (or whose DISPLAY variable is not set). Such a system is sometimes called "Headless" and graphical operations (GUI) will fail on it. The default installation mode for a BDJX Linux installer is GUI, so running that installer on a Headless system will give the following sort of error:
The recommended way to get past this issue is to run the installer in console mode. For example:


For those who would prefer the installer to default to GUI mode on systems where that's possible (already the case), but to also default to console mode on systems where GUI is *not* possible here is an unsupported way around it:
Run the following script to create a modified copy of the installer:

Thanks to Benoit Plessis for providing the script above.
Also thanks to Dan Moore for his blog post which pointed the way to this solution.
BlueDragon
Installation
How do I run the BlueDragon Server JX installer silently?
  • For BDJX
    1. Make sure you are using one of the patched BDJX installers found here:
      ftp://sprers.eu
      (or a newer installer if one is available).
    2. Create a file named and place it right next to the installer executable on your hard-drive.
    3. populate that file with (for example) the following details:
    4. Regarding BD_wsType:
      It is only used when BD_Do_adapter=true
      Valid ValuesMapped External Webserver
      AP2Apache x
      Apache22Apache x
      AW2Apache x
      Apache20 Apache x
      IISIIS
      Note that AWS which corresponds to Apache x is not supported by BDJX Also, BD_Instance & BD_User are not needed by BDJX They can be there or not, it makes no difference.
    5. Then simply invoke the installer as usual. It will detect the file there and use it to perform a silent installation.
BlueDragon
Installation
I&#;m trying to apply the Hotfix for BlueDragon/.NET, but when I try to drag and drop the dlls, they won&#;t copy. What gives?
In FAQsummer color error .asp id, we explain when and why to apply the hotfixes. The sprers.eu for each hotfix zip (downloadable from the web site) explains how to apply the fixes, and one for the .NET edition explains that for some types of installations you must drag and drop javascript error groups is not defined updated DLLs to the "global assembly cache" (or GAC) located at windows\aseembly directory (and that you can't copy and paste them).

But the hotfixes are in a zip file, and while Windows may permit you to open that zip file to view it as if it is a regular directory, you'll find that when you try to drag the files out of the "directory", it won't work.

The problem is simply that you must first extract the zip file (or copy/paste the files to a regular directory first), and then drag/drop the files from there to the GAC (windows\assembly directory). Don't forget to restart IIS afterward.

BlueDragon
Installation
I&#;m trying to install BlueDragon .NET on a brand new machine and the installer fails when I double click on it.
Look in C:\Documents and Settings\username\WINDOWS and see if you have a folder named Fonts inside WINDOWS. InstallShield will fail without it, summer color error .asp id. Add the folder (empty) and run the installer.
500 internal server error digitv BlueDragon
Installation
I&#;ve installed sprers.eu but it doesn&#;t work properly. How can I verify it was installed properly?
Perform the following steps to verify sprers.eu was installed properly:
  1. For a single virtual directory install, verify the following DLLs were placed in the <installation directory>\bin directory: sprers.eu, sprers.eu, sprers.eu and sprers.eu For all other installs, verify these DLLs were installed to the Global Assembly Cache (GAC). The GAC is located berkeley db error while opening environment <Windows directory>\assembly.
  2. For a single virtual directory install, verify a sprers.eu file exists in the <installation directory> directory. This file must contain the following elements (NOTE: To make this FAQ easier to read, some attribute values are shown on multiple lines. When manually entering these elements, the attribute values must be placed on a single line.):
    • <section name="bluedragon" type="sprers.eulueSectionHandler, System, summer color error .asp id, Version=, Culture=neutral, PublicKeyToken=b77a5ce" />
    • <bluedragon> <add key="SINGLE_WEB_APP" value="TRUE"/> </bluedragon>
ValueDescription
AutoIDThe ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. Each segment is separated by an underscore character (_). This algorithm was used in versions of sprers.eu earlier than sprers.eu 4.
StaticThe ClientID value is avast error ubuntu 10.04 to the value of the ID property, summer color error .asp id. If the control is a naming container, the control is used as the top of the hierarchy of naming containers for any controls that it contains.
PredictableThis algorithm is used for controls that are in data-bound controls. The ClientID value is generated by concatenating the ClientID value of the parent naming container with the ID value of the control. If the control is a data-bound control that hp sistem error 21 10 hp500plus multiple rows, the value of the data field specified in the ClientIDRowSuffix property is added at the end. For the GridView control, multiple summer color error .asp id fields can be specified. If the ClientIDRowSuffix property is blank, a sequential number is added at the end instead of a data-field value. Each segment is separated by an underscore character (_).
InheritThe control inherits the ClientIDMode setting of its NamingContainer control.

The default value of ClientIDMode for a page is Predictable. The default value of ClientIDMode for a control is Inherit. Because the default for controls is Inherit, the default generation mode is Predictable. (However, if you use Visual Studio to convert a Web project to sprers.eu 4 from an earlier version, Visual Studio automatically sets the site default to AutoID in the sprers.eu file.)

For more information, see sprers.eu Web Server Control Identification.

Applies to

See also

sprers.eu RequiredFieldValidator Control

next →← prev

This validator is used to make an input control required. It will throw an error if user leaves input control empty.

It is used to mandate form control required and restrict the user to provide data.

Note: It removes extra spaces from the beginning and end of the input value before validation is performed.

The ControlToValidateproperty should be set with the ID of control to validate.

RequiredFieldValidator Properties

PropertyDescription
AccessKeyIt is used to set keyboard shortcut for the control.
BackColorIt is used to set background color of the control.
BorderColorIt is used to set border color of the control.
FontIt is used to set font for the control text.
ForeColorIt is used to set color of the control text.
TextIt is used to set text to be shown for the cannibal corpse walken terror displays the text when mouse is over the control.
VisibleTo set visibility of control on the form.
HeightIt is used to set height of the control.
WidthIt is used to set width of the control.
ErrorMessage It is used to set error message that display when validation fails.
ControlToValidateIt takes ID of control to validate.

Example

Here, in the following example, we are explaining RequiredFieldValidator control and creating to mandatory TextBox controls.

// sprers.eu

Output:

It produces the following output when view in the browser.

ASP Required 1

It throws error messages when user login with empty controls.

ASP Required 2

Next sprers.eu ValidationSummary



← prevnext →



Rules

Rules to Better Websites - Development - 42 Rules

  1. Use .NET MVC over sprers.eu Web Forms .

    Figure: Bad example - Using Web Forms

    Figure: Good example - Using MVC 5Read the Top 5 reasons why you should never use Web Forms again:

    1. Testability - MVC provides true separation of concerns, and makes it easy to test the whole application from Unit Tests to Coded UI Tests
    2. Instant Pages - Get your admin pages up and running faster than ever with improved scaffolding. Don't get bogged down doing Create, Edit, Update, Delete
    3. Better HTML Markup Control - Every layer of obstruction creates new problems down the track. When so much development now involves jQuery or other javascript libraries, MVC simplifies development by putting the developer back in charge of the HTML that is actually rendered
    4. Simpler Debugging - This means that instead of complicated Webform lifecycles, your code either goes into the Route, Controller or View, so you can jump right into coding without an intimate knowledge of the page lifecycle
    5. Mobile Support - With Adaptive Rendering, MVC allows the same User Interface to Render on Different Devices, so users can check it out on their PC, their Tablet or even their Smart Phone

    Or watch the video:

    Use .NET MVC over sprers.eu Web Forms .

    Figure: Bad example - Using Web Forms

    Figure: Good example - Using MVC 5 Read the Top 5 reasons why you should never use Web Forms again:

    Read more

  2. In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

    1. Check the rule in MS Word (or Grammarly) to see if it has spelling or grammar mistakes
    2. Run Link Auditor and Code Auditor on that page
    3. Check the report and fix the errors (if any)
      Repeat step 2 and 3 until Link Auditor and Code Auditor get all green ticks

    In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

    Read more

  3. The following structure allows you to keep your website clean of clutter:

    • /Images  - for all static images
    • /Images/Dynamic  - for all images used in dynamically generated pages  NOTE: the reason we use two images directories is so we can exclude images used by dynamically generated pages from our link checking program. This is so we can work out the TRUE orphan images (and believe me, like coat-hangers they multiply quickly )
    • /Includes  - for all include files
    • **/Bin ** - for mdb's, dll's and udl's
    • /Shop  - for the shopping basket and related pages
    • /Clients  - for the client login page and related pages
    • **/Reports ** - for any SQL Server Reporting Services
    • **/zsMaintenance ** - for the administration section to modify web site settings
    • /zsValidate  - for all web server status and validation checks

    The root directory should be clean, having only:

    • default (.aspx. asp. htm)
    • sprers.eu
    • **sprers.eu **

    The following structure allows you to keep your website clean of clutter:

    Read more

  4. Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if it's just to show the files inside it.

    It is usually a sprers.eu file, however depending on the webserver configuration; it might be sprers.eu or sprers.eu etc.

    Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if summer color error .asp id just to show the files inside it.

    Read more

  5. A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

    This makes your site very easy to maintain. If you ever want to change the entire look and feel you should only have to change one file.

    A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

    Read more

  6. It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake of missing a quotation could lead to undesired results on the web page.

    Figure: Bad code - Can you see the missing quote? Code Auditor can

    Figure: All OK

    As you can see from the above example, just missing a quotation makes the whole layout of the text different. So be very careful that you make sure you have closed all opening quotations of attributes with equivalent closing quotations.

    We have a program called SSW Code Auditor to check for this rule.

    It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake summer color error .asp id missing a quotation could lead to undesired results on the web page.

    Read more

  7. Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

    The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

    The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

    Note:  <code> tags should not be used because they only provide the font Courier - summer color error .asp id still have to manually indent all of your code as in the bad code display example below.

    Figure: Bad code display example - using <font>

    Figure: Bad code display example - using <code>

    Figure: Good code display example - using <pre>

    Tip:  Do not use auto-format (Ctrl-K, Ctrl-F) in Visual Studio when updating page with <pre> tags, or it will destroy all the code formatting. We have made a suggestion to Microsoft to fix this.

    Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

    The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

    The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

    Read more

  8. You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

    It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

    The following benefits of using heading tags:

    • Improves the ranking with the search engines (extra weighting is given to summer color error .asp id in H1 and H2)
    • Makes flylink sqlite database error and leaner HTML

    Figure: Bad example - Using span tags and CSS classes to insert headings to content

    Figure: Good example - Using heading tags

    You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

    It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

    The following benefits of using heading tags:

    Read more

  9. These are the things you should consider when creating an anchor link:

    1. Make it meaningful - When you define anchors names, use meaningful names. When you are sending the URL by email it helps indicate what you are talking about. Avoid list numbers, summer color error .asp id, as they often change. An anchor like "#13" becomes incorrect when error chk c7012d0103cd000010000000f1 rus order changes.
    2. It is case sensitive - Are and the same? The answer is "no" because they might be not case sensitive summer color error .asp id they test in some browsers.
    3. No spacing - When you are defining an anchor name, make sure there are no spaces within the name

    bad Bad example: Spaces within anchor name

    good Good example: No spaces within anchor name

    1. Don't define names starting with a # - This is a common mistake because the # is used on the "href"

    When you are defining an anchor name you do not use a hashtag.
    Bear in mind that when you are referencing an anchor you do use a hashtag.

    bad Bad example: Hashtag on anchor name

    good Good example: No hashtag on anchor name

    We have a program called SSW Code Auditor to check for #3 and #4 on this rule.

    These are the things you should consider when creating an anchor link:

    Read more

  10. Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization (SEO) gurus are always looking to find new ways to increase their Google rankings.

    As we all know, a website is a pretty nifty thing to have for a myriad of different reasons. But the truth is that it's worth is derived from the people that surf it, and if no one is surfing it, then it becomes useless. So who's the biggest website referrer? The answer is Google in almost every case.

    So design your website with this in mind. In the eyes of a search engines, there are good and bad ways that you can design your website. Here's a list of suggestions to improve your Google ranking and other search engine optimization tips

    Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization summer color error .asp id gurus are always looking to find new ways to increase their Google rankings.

    Read more

  11. Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your summer color error .asp id is used.

    By using Google Analytics, you will be able to see what your visitors are viewing and what they aren't, what they spend large amount's of time on, what pages are causing errors, what pages are directing visitors to you, which browsers and devices are being used to see you site and more. All this information help you better structure your site to what your visitors like. It also allows you to compare site traffic from one month to another.

    The most useful reports:

    • Which are your most popular pages of your website
    • Which sites are referring the most hits to you
    • Which keywords are bringing users to your site
    • If you have downloads, which are the most popular

    To add Google Analytics to your website:

    1. Log into your Google account,
    2. Go to Admin
    3. Ensure both Account and Property
    4. Specify your website details,
    5. Find your Tracking Code,
    6. And add the script to your website
    tracking code property

    From this page, you will be able to get a JavaScript snippet to include in your application.

    20 08 3 30 55 PM compressor
    20 08 10 53 15 AM compressor

    Once deployed, summer color error .asp id, this script will start tracking metrics and interacting with Google Analytics.

    You are good to go!

    Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your website is used.

    Read more

  12. If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

    The exception to this is if you are using open-source data, summer color error .asp id. sprers.eu is a good example of this.

    wordpress editsummer color error .asp id alt="github edit" src="sprers.eu">

    From Github, you can edit and submit a pull request. See sprers.eu (SSW People) or sprers.eu (SSW Rules) for more details.

    This is better than sending a 'Change from X to Y' email as the work can be done immediately with less work and management requirements.

  13. If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

    The exception to stop 0x0000021a win 7 fatal system error is if you are using open-source data. sprers.eu is a good example of this.

    Read more

  • Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately, summer color error .asp id. No website is immune to such errors.

    A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if terrorist takedown cover ops have one.

    Figure: Bad example - The default code on sprers.eu

    Figure: Good example - The custom code in the sprers.eu

    For sprers.eu website, the detailed information would be presented to the remote machines when an unhandled error occurs if the customErrors mode is off.

    This error information is useful for the developer to do debugging. However, summer color error .asp id, it would leak out some confidential information which could be used to get into your system by the hackers. We can assume that if a SQL exception occurs by accident, which may expose database sensitive information (e.g. connection string; SQL script). So, to prevent these leaks, you should set the "mode" attribute of the tag <customerrors> to "RemoteOnly" or "On" in the sprers.eu file and create a user-friendly customized error page to replace the detailed error information.

    Figure: Good example - Turning on "customErrors" protects sensitive information against Hacker

     bad
     good

    Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately. No website is immune to such errors.

    A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if you have one.

    Read more

  • When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct.E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

    In .NET you are allowed to define a custom error page. When a user tries to access a URL which doesn't exist. NET changes the URL and redirects to the custom error page. The original URL is summer color error .asp id as a parameter to the new URL.

    The advantage of this solution is, that the page looks nice and you can customize it according to the design and layout of your whole site.

    The disadvantage is, that .NET changes the URL. So if the user wants to correct the URL he entered, for example, because he just mixed up a letter, then this means quite a lot of work for him. He has to retype the whole URL or at least copy chassis intruded fatal error. system halted paste the parameter out of the new URL. This is very uncomfortable for the user.

    Our solution is to show the customized error page while not change the original URL. So if the user wants to do any corrections, e.g, summer color error .asp id. a mixed up letter, he can do that by just editing the URL in the address help runtime error occurred has in script advantages of this solution are, that the site looks nice and matches the design of the whole site and that the user can easily change the original URL he typed.

    You can try any page name that doesn't exist like sprers.eu on the URL and it will open our error page. The original URL is not changed in the address bar. It should look like this:

     good

    In order to show the customized error page while not change the original URL, you can use sprers.euer() to keep the original URL.

    **Figure: Custom error page handler in sprers.eu **

    Related rule

    When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct. E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

    Read more

  • sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, summer color error .asp id, FireBug or IE8 developer Tools.

    JavaScriptBad1
    JavaScriptBad
    JavaScriptGoodruntime error 50003 you should always put JavaScript in a separate file. Then the line numbers will stay consistent during sprers.eug JavaScript in a separate file is also good for production as it improves performance due to browser caching.

    Note: During development, remember to hit CTRL-F5 to force the browser to re-fetch the files from the server or you may be debugging old version of the JavaScript file.

    sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, FireBug or IE8 developer Tools.

    Read more

  • When you build a web application, summer color error .asp id, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

    • Bookmarking of the pages
    • Gives the user to the ability to change the query string values in the address bar, rather than having to go back to the input form.
    querystring

    You may hear that query strings are bad and they leave you wide open to SQL Injection Attacks (especially when you use SQL statements in the URL). I don't subscribe to the security issues being the determining factor if I am determined enough, I can write a little application to send POST data to the webpage instead of in the query string. Both methods are open to SQL injection and invalid parameters, so you need to code to prevent that either way.

    The bottom line is that if you are not giving appropriate parameters in the query string then you are reducing functionality.

    Note: We all agree bookmarks are summer color error .asp id - it's the same for query strings.

    When you build a web application, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

    • Bookmarking of the pages
    • Gives the user to the ability to change the query string values in the address bar, summer color error .asp id than having to go back to the input form.

    Read more

  • **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

    Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

    Then you need to:

    • add the JavaScript function eg. ValidateLength(control)
    • add 2 properties to every data control  eg. dataType="char" onkeyup="validateLength(this)"

    **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

    Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

    Read more

  • When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source lockmailbox failed error code 75 will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

    Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

    1. Web Site Project

    Publish Web Site dialog box is designed to precompile and deploy your Web site to a new location (whatever it is, ftp://, http:// or icap clamav squid howto srv_clamav error. During the deployment, source code are removed automatically. Besides, the precompilation process finds any compilation errors and identifies the errors in the configuration file.

    To access this dialog box, please open a Web site that you want to deploy and click Build menu, then click Publish Web Site .

    PublishWebsite

    See more about Publishing Web Sites.

    2. Web Application Project

    The Publish Web dialog box enables you to build and publish a Web application project to a new location. Like Publish Web Site dialog box, this utility can remove source code, summer color error .asp id. However you have to select Only files ami bios error d6 to run this application to specify it. Other error allocating mechsmooth data of this utility is that potential errors and compile-time errors in the sprers.eu file and in other non-code files can be found.

    To access this dialog box, open a Web application project that you want to publish and click Publish ApplicationName on the Build menu.

    PublishWebApp

    See more about How to Publish Web Applications.

    When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source code will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

    Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

    Read more

  • Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

    Bad Example

    Good Example

    Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

    Read more

  • If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp, summer color error .asp id. We use WhatsUp to do real-time sprers.eu these steps to check your website in WhatsUp:

    1. Add your website as a new device.
    2. Ping monitor is added automatically.
    3. Add an HTTP Content Scan monitor.
    4. Edit the scan script. In the script, you can see 2 keywords "Send" and "Expect". "Send" expression is an HTTP request to your website. "Expect" expression is a regular expression to check the key word in response from your website.
    1. Add the monitor to your device.

      Once a device is down or up, a WhatsUp action will tell SQL Reporting Services to send out a notification report. Our report looks like fatal error cannot redeclare a

    If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp. We use WhatsUp to do real-time monitoring. Follow these steps to check your website in WhatsUp:

    Read more

  • Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

    Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

    On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

    PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

    In order to be a PWA, your app should:

    • Use a responsive designso it works on desktop or mobile.
    • Be fastusing a service worker to precache the app resources (HTML, CSS, JavaScript, images) needed to run, and cache the data at runtime to improve performance.
    • Be installableusing a web app manifest and the beforeinstallprompt event to notify the user that it is installable.

    Examples of Progressive Web Apps can be seen at sprers.eu.

    pwa bad example
    pwa example

    You can check the Progressive Web App score of your application using Chrome's Developer tools.

    Note: See how to generate a PWA report on sprers.eu#devtools.

    PWA tools

    Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

    Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

    On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

    PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

    Read more

  • If you are dealing with Content Management System (CMS), you are likely to play with pages with large amount of images and embedded videos. To improve the performance of those pages, and save bandwidth for the summer color error .asp id, loading content asynchronously (also called “lazy loading”) is recommended.

    It means the browsers will only load images and embedded videos in the visible area by default, summer color error .asp id, then load the rest images and videos while users are scrolling down to them.

    On our rules web site, one of the pages’ initial loading size of images reduced from MB to KB after being applied “lazy loading” of images:

    load images 1
  • Exploring sprers.eu Pages

    Explore sprers.eu pages and dig into some of their core functions, such as page events and properties, summer color error .asp id directives.

    This chapter is from the book 

    Alive!!! It&#;s alive!!The page is ALIVE!!!!!

    I don&#;t want to sound like a nag or like I&#;m harping on the same issue over and over, but sprers.eu is really about events and objects. The sprers.eu page is no exception. It is an object in the eyes of sprers.eu just like anything else. It has properties and methods and can be interacted with, similar to the other objects you&#;ve seen so far, and the plethora of things to come as you summer color error .asp id through the remainder of this book.

    Because events are a big part of sprers.eu and also a huge part of the power of the sprers.eu page object, summer color error .asp id, it&#;s important to look closely at these event and the order in which they occur so that you can utilize them to their fullest potential.

    Understanding Page Events

    Maybe this isn&#;t the best way to explain this. Maybe my mother wouldn&#;t be so proud of my openness. Maybe these examples will be too graphic for you, but it&#;s the best way I can describe it, terror not this time hoodie please bear with me.

    Every morning of every workday I start my day the same way. I get up, drag my carcass into the living room, and turn on the television, summer color error .asp id. I stare at overpaid morning show hosts like a dribbling fool, with about as much cerebral activity as an earthworm trying to figure out what to eat. After the first flicker of lights goes off in my cranium, I drag my carcass to summer color error .asp id shower to defrost my brain.

    In the shower I have a set routine so as not to miss any vital, proper hygienic functions and to ensure that the other people in my office and our clients don&#;t give me those strange looks anymore when I enter the room. I think if you took the time to analyze this portion of your life, you&#;d see that without conscious thought, summer color error .asp id, you pick up the bar of soap and proceed to cleanse without ever putting a thought into what you are doing. You may be singing or thinking about the day you are about to face and before you know itBoom! You&#;re finished.

    It&#;s a routine that I go through every morning almost without thought. And that&#;s a good thing; if I needed to be able to think before I could shower, I wouldn&#;t arrive at work until a.m., or until I&#;ve had several cups of joe. This practice is part of a subconscious, programmed routine that has been burned into my mind from years of habit.

    When I then go to work, I respond to the world around me. I make decisions based on what stimulus comes my way. Maybe someone comes to the office for a meeting. They ask questions and I answer them. The phone rings and I pick it up. I get e-mail and I occasionally read it and less often answer it. I am affected by the world around me and what kind of input it gives me. I then go home and enjoy the solace (this isn&#;t a joke and I&#;m not kidding) of my family.

    At the end of the day I get into my pajamas and go to sleep.

    sprers.eu pages are a lot like this. They go through a routine every time they are called. These routines are the sprers.eu pages&#; events. They are like the steps I go through every morning to prepare for my day, or like showering by the same routine everyday.

    sprers.eu pages have a routine of events that happen, and they happen in the same way, in the same order, every time. You&#;ve seen one of these events,in seek error hdd of the previous examples. Let&#;s look into these events and the others that a page goes through when it sentinel hasp run-time error executed.

    The three main events, although there are others, are as follows:

    Page_Init

    The event is the first to occur when an sprers.eu page is executed. This is where you should perform any initialization steps that you need to set up or create instances of server controls. Server controls are discussed in later chapters, so just keep this event in mind.

    You don&#;t want to try to access controls in this event because there is no guarantee that they have been created yet. It is during this event that they are created, and you can control whether your attempt to use these objects will be thwarted by the server processing your request before the object has been created.

    The following is an example of the structure of summer color error .asp id to use the event

    Visual Basic .NET

    Sub Page_Init() &#;Place your Page_Init code here End Sub

    C#

    void Page_Init(){ //Place your Page_Init code here }

    Note that the event fires only the first time the page is loaded. When you use a web form and post back to this page again, the event doesn&#;t fire. But the event fires each time the page loads.

    Page_Load

    This is the page event where you will be doing most of your work. This event occurs only when all the objects on the page have been created and are available for use. You will see&#;within this book and in other examples available in the .NET Framework SDK and sprers.eu-related web sites&#;that the lion&#;s share of work on sprers.eu pages is done during this event, summer color error .asp id. We&#;ve been using this event since the beginning of the book and will continue to use it in just about every example.

    Although you&#;ve seen it a zillion times already in the book, for consistency&#;s sake I&#;ll show you the form here, summer color error .asp id. It doesn&#;t look a whole lot different from the example, and for all intents and purposes the only thing that&#;s different is that the word is substituted with the word.

    Visual Basic .NET

    Sub Page_Load() &#;Place your Page_Load code here End Sub

    C#

    void Page_Load(){ //Place your Page_Load code here }

    Page_Unload

    is the counterpart to. Just as photoshop cs5 configuration error 6 an event that happens before anything else happens, happens after everything else happens. It is available for you to perform any operation you need to after you are completely finished with the page.

    For instance, imagine that you temporarily needed to create a file on the server during the page&#;s processing. You wouldn&#;t want to leave it there for eternity, especially if the file was unique to each visitor of the web site. You could have loads and loads of files building on your server without any way to get rid of them. But if you were a good boy or girl, you could destroy the file during the page&#;s event and make the server administrator a happy camper.

    Just to be fair and impartial, I don&#;t want to leave out showing you the structure of the event. Look familiar?

    Visual Basic .NET

    Sub Page_Unload() &#;Place your Page_Unload code here End Sub

    C#

    void Page_Unload(){ //Place your Page_Unload code here }

    Getting back to my morning routine, it looks like this:

    1. . Roll carcass from bed to in front of the television.

    2. Take shower brainlessly, get dressed (make sure socks match and colors coordinate&#;check with wife for confirmation). Get into car and drive to the office.

    3. Handle the day in all its glory and all the blessings that come with it.

    4. . Get into jammies and go to sleep.

    It&#;s that routine, and I behave just like the object does. When I run through these events, I am investigating and affecting all kinds of things. I&#;m finding out the condition of the world that morning by listening to news, changing the state of my brain to somewhat functional, changing the direction that my hair points from an erratic bird&#;s nest to some semblance of a hairdo, summer color error .asp id, and more.

    I&#;m doing this through checking and setting properties and executing methods, so to speak. DuringI execute the method to change the property from true to false.

    During I&#;m checking the value of the property and seeing what the value of the property is, which is generally grayer than the day before. I&#;m assuring that the property is set to zero by executing the method.

    I then have the ability to respond to events and stimulus from the world around me throughout the day. Then during the event, I execute the method to set the property to true.

    Can you see how these different events at different times have a direct affect on my condition? sprers.eu pages can be affected just like this with their different events. Now are you beginning to see more clearly how events and objects interact in sprers.eu and how this is a totally different paradigm from any traditional way of web programming in HTML or Active Server Pages.

    As I said summer color error .asp id the beginning of the chapter, sprers.eu is all about events and objects, and the sprers.eu page is no exception. You samsung microwave e 13 error that objects are made up error e08 canon mp280 their properties and methods, and now you know that objects can also have events, as well.

    The object has the three mentioned events, as well as others that execute without intervention from the designer, but other events also affect sprers.eu pages.

    User-Initiated Events

    Just as I am faced with input from the world around me after the event has finished, a page can also deal with events initiated by the web page&#;s visitor.

    Let&#;s look at an example of some events, both self executing and user initiated. Below is a page that shows the date and asks you to pick what mood you&#;re in. In the code samples, you&#;ll also be shown another neat server control called a and a cool feature of the .NET Framework called Databinding. You will also see a property of the object called. We will discuss this later in this chapter, but again, don&#;t get hung up on these things&#; just concentrate on the events in the page.

    Visual Basic .NET

    <%@ page language="vb" runat="server"%> <script runat=server> Sub Page_Load() dim TodaysDate as Date TodaysDate = sprers.eutDateString sprers.eu = "<u><b>Today&#;s Date is " + TodaysDate + "</b></u>" If Not IsPostBack then dim MoodArray(3) as String MoodArray(0) = "Good Mood" MoodArray(1) = "Okay Mood" MoodArray(2) = "Bad Mood" MoodArray(3) = "Totally Melancholy " sprers.euurce = MoodArray sprers.eund() End If End Sub Sub CheckMood(sender As Object, e As sprers.eurgs) If sprers.euedIndex > -1 then sprers.eu = "The Mood that you selected is " +
    sprers.eu Else sprers.eu = "What? You don&#;t feel anything?" End If End Sub </script> <html> <title>What&#;s Your Mood?</title> <body> <form id="MoodForm" runat="server"> <asp:label id="OurTitle" runat="server"/><br> <asp:RadioButtonList id="YourMood" runat="server"/> <asp:Button id="MoodButton" text="What&#;s Your Mood?" onClick="CheckMood"
    runat="server"/> <br><br> <asp:label id="SelectedMood" runat="server"/><br> </form> </body> </html>

    C#

    <%@ page language="c#" runat="server"%> <script runat=server> void Page_Load(){ String TodaysDate; string[] MoodArray = new string[4]; TodaysDate = sprers.eutDateString(); sprers.eu = "<u><b>Today&#;s Date is " + TodaysDate + "</b></u>"; if (!IsPostBack){ MoodArray[0] = "Good Mood"; MoodArray[1] = "Okay Mood"; MoodArray[2] = "Bad Mood"; MoodArray[3] = "Totally Melancholy "; sprers.euurce = MoodArray; sprers.eund(); } } void CheckMood(object Source, sprers.eurgs s){ if (sprers.euedIndex > -1) { sprers.eu = "The Mood that you selected is " +
    sprers.eu; }else{ sprers.eu = "What? You don&#;t feel anything?"; } } </script> <html> <title>What&#;s Your Mood?</title> <body> <form runat="server"> <asp:label id="OurTitle" runat="server"/><br> <asp:RadioButtonList id="YourMood" runat="server"/> <asp:Button id="MoodButton" text="What&#;s Your Mood?" onClick="CheckMood"
    runat="server"/> <br><br> <asp:label id="SelectedMood" runat="server"/><br> </form> </body> </html>

    If you look at Figureyou can see the results of the initial load of the page. The event fires, at which time the date is created. I then set the property of and I build an array that will make up the radio buttons.

    If you look back at the code samples again, you can see that attached to the button is an event that calls a function called. I know that this looks pretty similar to a client-side JavaScript function call, but remember that sprers.eu is a server-side technology. If you look at the code delivered to the browser, you see that there is no event to be seen.

    <input type="submit" name="MoodButton" value="What&#;s Your Mood?" id="MoodButton" />

    Figure The event has built the page, but the event hasn&#;t had any effect because the button hasn&#;t been pressed yet.

    sprers.eu knows whether you pressed this button&#;not by a typical client-side event, but by inspecting the form that is posted and seeing whether this button was pressed. The terminology is similar to client-side JavaScript, but the function and method is totally different.

    Now it&#;s time to pick a mood and click the button, summer color error .asp id. You can see in Figure that the mood is now displayed because the event that took place server-side executed the function calledwhich sets the text of the label.

    Figure The event is fired by clicking the button.

    To reinforce the point that sprers.eu is smart about calling functions and that what is executed is determined by the event of the button, I have put together a sample with two different buttons that call two different functions. Each button uses its own event.

    Visual Basic .NET

    <%@ page language="vb" EnableViewState="false" runat="server"%> <script runat=server> Sub CountDown(sender As Object, e As sprers.eurgs) dim i as Integer for i = CDbl(sprers.eu) to 1 Step -1 sprers.eu += "Countdown: " + sprers.eung() + "<br>" next End Sub Sub StringLength(sender As Object, e As sprers.eurgs) sprers.eu = "The length of this string is: " + sprers.eung End Sub </script> <html> <head> <title>What do you want?</title> </head> <body> <form runat="server"> Either enter a word to find its length or a number to count down from<br> <asp:TextBox id="Text1" runat="server"/> <asp:Button id="btnCountDown" text="Count Down" onClick="CountDown"
    runat="server"/> <asp:Button id="btnLength" text="Get Length" onClick="StringLength"
    runat="server"/> <br><br> <asp:label id="OurLabel" runat="server"/><br> </form> </body> </html>

    C#

    <%@ page language="cs" EnableViewState="false" runat="server"%> <script runat=server> void CountDown(object Source, summer color error .asp id, sprers.eurgs s){ int i; for (i = sprers.eu16(sprers.eu);i >= 1;&#;i){ sprers.eu += "Countdown: " + sprers.eung() + "<br>"; } } void StringLength(object Source, sprers.eurgs s){ sprers.eu = "The length of this string is: " +
    sprers.eung(); } </script> <html> <head> <title>What do you want?</title> </head> <body> <form runat="server"> Either enter a word to find its length or a number to count down from<br> <asp:TextBox id="Text1" runat="server"/> <asp:Button id="btnCountDown" text="Count Down" onClick="CountDown"
    runat="server"/> <asp:Button id="btnLength" text="Get Length" onClick="StringLength"
    runat="server"/> <br><br> <asp:label id="OurLabel" runat="server"/><br> </form> </body> </html>

    If you look at Figure you can see that after the Count Down button was clicked, with the value of 10 in the text box, summer color error .asp id function was executed and the code generated and displayed properly.

    Figure Clicking the Count Down button causes the function to execute.

    Now if you put a string such as "What is the length?" in the text box and click the Get Length button, you are executing the function.

    NOTE

    This example has a bit of hidden danger in that if someone enters a string in the text box and clicks the Count Down button, sprers.eu will cause an error. This is because it can&#;t convert a type to an in this circumstance. But you don&#;t need to worry about this in your real-world applications because sprers.eu provides some really, REALLY cool answers to validating input data (that we will be devoting an entire chapter to later). The validators would totally solve any issues like this&#;and more.

    Figure Clicking the Get Length button causes the function to execute.

    As if all the objects and events covered earlier weren&#;t enough, the concept of user-initiated events opens up a totally new way of thinking again about how you can handle and manipulate data, depending on how a user interacts with your web application.

    Other events are also available that can help you manipulate data and objects, and I would encourage you again to go to the class browser hdd scan 199 ultradma crc errors at the following link and look at what events you can use on each object:

    sprers.eu

    Now that we&#;ve touched on the different events, both default and user-initiated, let&#;s move on to looking at some of the key properties of the object.

    Overview of the sprers.eu Framework

    This chapter is from the book 

    Understanding sprers.eu Controls

    sprers.eu controls are the heart of sprers.eu Framework. An sprers.eu control is a .NET class that executes on the server and renders certain content to the browser. For example, in the first sprers.eu page created at the beginning of this chapter, a Label control was used to display the current date and time. The sprers.eu framework includes more than 90 controls, which enable you to do everything from displaying a list of database records to displaying a randomly rotating banner advertisement.

    This section provides mysql error code 1017 overview of the controls included in sprers.eu Framework. You also learn how to handle events raised by controls and how to take advantage of View State.

    Overview of sprers.eu Controls

    The sprers.eu Framework contains more than 90 controls. These controls can be divided into seven groups:

    • Standard Controls&#;Enable you to render standard form elements such as buttons, input fields, and labels. We examine these controls in detail in Chapter 2, "Using the Standard Controls."
    • Validation Controls&#;Enable you to validate form data before you submit the data to the server. For example, you can use a control to check whether a user entered a value for a required input field. These controls are discussed in Chapter 3, "Using the Validation Controls."
    • Rich Controls&#;Enable you to render things such as calendars, file upload buttons, rotating banner advertisements, summer color error .asp id multistep wizards. Chapter 4, "Using the Rich Controls," discusses these controls.
    • Data Controls&#;Enable you to work with data such as database data. For example, you can use these controls to submit new records to a database table or display a list of database records. Part III, "Performing Data Access," discusses these controls.
    • Navigation Controls&#;Enable you to display standard navigation elements such as menus, tree views, and bread crumb trails. Chapter 22, "Using the Navigation Controls," discusses these controls.
    • Login Controls&#;Enables you to display login, change password, and registration forms. Chapter 26, "Using the Login Controls," discusses these controls.
    • HTML Controls&#;Enable you to convert any HTML tag into a server-side control. This group of controls are discussed in the next section.

    With the exception of the HTML controls, you declare and use all sprers.eu controls in a page in exactly the same way, summer color error .asp id. For example, if you want to display a text input field in a page, you can declare a control like this:

    <asp:TextBox id="TextBox1" runat="Server" />

    This control declaration looks like the declaration for an HTML tag. Remember, however, unlike an HTML tag, a control is a .NET class that executes on the server and not in the web browser.

    When the TextBox control is rendered to the browser, it renders the following content:

    <input name="TextBox1" type="text" id="TextBox1" />

    The first part of the control declaration, the prefix, summer color error .asp id, indicates the namespace for the control, summer color error .asp id. All the standard sprers.eu summer color error .asp id are contained in the namespace, summer color error .asp id. The prefix represents this namespace.

    Next, the declaration contains the name of the control being declared. In this case, a control is declared.

    This declaration also includes an ID attribute. You use the ID to refer to the control in the page within your code, summer color error .asp id. Every control must have a unique ID.

    The declaration also includes a attribute. This attribute marks the tag as representing a server-side control. If you neglect to include this attribute, the tag would be passed, summer color error .asp id, without being executed, to the browser. The browser would simply ignore the tag.

    Finally, notice that the tag ends with a forward slash. The forward slash is shorthand for creating a closing tag. You can, if you prefer, error 150 30 adobe cs4 the control like this:

    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

    In this case, the opening tag does not contain a forward slash and an explicit closing tag is included.

    Understanding HTML Controls

    You declare HTML controls in a different way than you declare standard sprers.eu controls. The sprers.eu Framework enables you to take any HTML tag (real or imaginary) and add a attribute to the progress error 1422. The attribute converts the HTML tag into a server-side sprers.eu control.

    For example, the page in Listing contains a tag, which has been hwk login error - 9 into an sprers.eu control.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.euext = sprers.eung("T"); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>HTML Controls</title> </head> <body> <form id="form1" runat="server"> <div> At the tone, the time will be: <span id="spanNow" runat="server" /> </div> </form> </body> </html>

    The tag in Listing looks just like a normal HTML tag except for the addition of the attribute.

    Because the tag in Listing is a server-side HTML control, you can program against it. In Listingthe current date and time are assigned to the tag in the method.

    The HTML controls are included in sprers.eu Framework to make it easier to convert existing HTML pages to use sprers.eu Framework. I rarely use the HTML controls in this book because, in general, the summer color error .asp id sprers.eu controls provide all the same functionality and more.

    Understanding and Handling Control Events

    The majority of sprers.eu controls support one or more events. For example, the sprers.eu control supports the event. The event is raised on the server after you click the button rendered by the control in the browser.

    The page in Listing illustrates how you can write code that executes when a user clicks the button rendered by the control (in other words, it illustrates how you can create a event handler):

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { sprers.eu = "Thanks!"; } </script> <html plotter 500 error 11 11 > <head id="Head1" runat="server"> <title>Show Button Click</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnSubmit" Text="Click Here" OnClick="btnSubmit_Click" Runat="server" /> <br /><br /> <asp:Label id="Label1" Runat="server" /> </div> </form> </body> </html>

    Notice that the control in Listing includes an attribute. This attribute points to a subroutine named. The subroutine is the handler for the summer color error .asp id. This subroutine executes whenever you click the button (see Figure ).

    You can add an event handler automatically to a control in multiple ways when using Visual Web Developer. In Source view, add a handler by selecting a control from the top-left drop-down list and selecting an event from the top-right drop-down list. The event handler code is added to the page automatically (see Figure ).

    Figure

    Figure Adding an event handler from Source view.

    In Design view, you can double-click a control to add a handler for the control's default event. Double-clicking a control switches you to Source view and adds the event handler.

    Finally, from Design view, after selecting a control on the designer surface, you can add an event handler from the Properties window by clicking the Events button (the lightning bolt) and double-clicking next to the name of any of the events (see Figure ).

    Figure

    Figure Adding an event handler from the Properties window.

    You need to understand that all sprers.eu control events happen on the server. Mac app store connection failed error example, the event is not raised when you actually click a button. The event is not raised until the page containing the Button parse error syntax error, unexpected t_case is posted back to the server.

    The sprers.eu Framework is a server-side web application framework. The .NET Framework code that you write executes on the server and not within the web browser. From the perspective of sprers.eu, nothing happens until the page is posted back to the server and can execute within the context of .NET Framework.

    Notice that two parameters are passed to the handler in Listing All event handlers for sprers.eu controls have the same general signature.

    The first parameter, the object parameter namedrepresents the control that raised the event. In other words, it represents the control that you clicked.

    You can wire multiple controls in a page to the same event handler and use this first parameter to determine the particular control that raised the event. For example, the page summer color error .asp id Listing includes two controls. When you click either control, summer color error .asp id, the text displayed by the control is updated (see Figure ).

    Figure

    Figure Handling two controls with one event handler.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void Button_Click(object sender, EventArgs e) { Button btn = (Button)sender; sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Button Counters</title> </head> <body> <form id="form1" runat="server"> <div> First Counter: <asp:Button id="Button1" Text="0" OnClick="Button_Click" Runat="server" /> <br /><br /> Second Counter: <asp:Button id="Button2" Text="0" OnClick="Button_Click" Runat="server" /> </div> </form> </body> </html>

    The second parameter passed to the event handler, the parameter named error code 43 dodge neon, represents any additional event information associated with the event. No additional event information is associated with clicking a button, so this second parameter does not represent anything useful in what is an error 800 Listing or Listing

    When you click an control instead of a control, on the other hand, summer color error .asp id, additional event information is passed to the event handler. When you click an control, the X and Y coordinates of where you clicked are passed to the handler.

    The page in Listing contains an control that displays a picture. When you click the picture, the X and Y coordinates of the spot you linq to sql association error display in a Label control (see Figure ).

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnElephant_Click(object sender, ImageClickEventArgs e) { sprers.eu = sprers.eung(); sprers.eu = sprers.eung(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show EventArgs</title> </head> <body> <form id="form1" runat="server"> <div> <asp:ImageButton id="btnElephant" ImageUrl="sprers.eu" Runat="server" OnClick="btnElephant_Click" /> <br /> X Coordinate: <asp:Label id="lblX" Runat="server" /> <br /> Y Coordinate: <asp:Label id="lblY" Runat="server" /> </div> </form> </body> </html>

    The second parameter passed to the method is an parameter. Whenever the second parameter is not the default parameter, you know that additional event information is passed to the handler.

    Understanding View State

    The HTTP protocol, the fundamental protocol of the World Wide Web, is a stateless protocol. Each time you request a web page from a website, from the website's perspective, you are a completely new person.

    The sprers.eu Framework, however, manages to transcend this limitation of the HTTP protocol, summer color error .asp id. For example, if you assign a value to a Label control's property, the Label control retains this value across multiple page requests.

    Consider the page in Listing This page contains a Button control and a Label control. Each time you click the Button control, summer color error .asp id, the value displayed by the Label control is incremented by 1 (see Figure ). How does the Label control preserve its value across postbacks to the web server?

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show View State</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> <asp:Label id="lblCounter" Text="0" Runat="server" /> </div> </form> </body> </html>

    The sprers.eu Framework uses a trick called View State. If you open the page in Listing in your browser and select View Source, you notice that the page includes a hidden form field named that looks like this:

    <input type="hidden" name="__VIEWSTATE" id="__ VIEWSTATE" value="/wEPDwUKLTc2ODE1OTYxNw9kFgICBA9kFgIC Aw8PFgIeBFRleHQFATFkZGT3tMnThg9KZpGak55pvfInj1w==" />

    This hidden form field contains the value of the Label control's property (and the values of any other control properties summer color error .asp id in View State). When the page is posted back to the server, sprers.eu Framework rips apart this string and re-creates the values of all the properties stored in View State. In this way, sprers.eu Framework preserves the state of control properties across postbacks to the web server.

    By default, View State is enabled for every control in sprers.eu Framework. If you change the background color of a Calendar control, the new background color is remembered across postbacks. If you change the selected item in asummer color error .asp id, the selected item is remembered across postbacks. The values of these properties are automatically stored in View State.

    View State is a good thing, but sometimes it can be too much of a good thing. The hidden form field can become large. Stuffing too much data into View State can slow down the rendering of a page because the contents of the hidden field must be pushed back and forth between the web server and web browser.

    You can determine how much View State each control contained in a page is consuming by enabling tracing for a page (see Figure ). The page in Listing includes a attribute in its directive, which enables tracing.

    Listing

    <%@ Page Language="C#" Trace="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.eu = "Hello World!"; sprers.euDate = sprers.eu; } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show Trace</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label id="Label1" Runat="server" /> <asp:Calendar id="Calendar1" TodayDayStyle-BackColor="Yellow" Runat="server" /> </div> </form> </body> </html>

    When you open the page in Listingadditional information about the page is appended to the bottom of the page. The Control Tree section displays the sccm 2007 task sequence error codes of View State used by each sprers.eu control contained in the page.

    Every sprers.eu control includes a property named. If you set this property to the valueView State is disabled for the control, summer color error .asp id. In that case, the values of the control properties are not remembered across postbacks to the server.

    For example, the page in Listing contains two Label controls and a Button control. The first Label has View State disabled, and the second Label has View State enabled. When you click the button, only the value of the second Ssis lookup error output control is incremented past 1.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Disable View State</title> </head> <body> <form id="form1" runat="server"> <div> Label 1: <asp:Label id="Label1" EnableViewState="false" Text="0" Runat="server" /> <br /> Label 2: <asp:Label id="Label2" Text="0" Runat="server" /> <br /><br /> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> </div> </form> </body> </html>

    Sometimes, you might want to disable View State even when you aren't concerned with the size of the hidden form field. For example, if you use a Label control to display a form validation error message, you might want to start from scratch each time the page is submitted. In that case, simply disable View State for the Label control.

    Professional sprers.eu MVC

    Abstract

    This book begins with you working along as Scott Guthrie builds a complete sprers.eu MVC reference application. He begins NerdDinner by using the File->New Project menu command within Visual Studio to create a new sprers.eu MVC Application. You'll then incrementally add functionality and features. Along the way you'll cover how to create a database, summer color error .asp id, build a model layer with business rule validations, implement listing/details data browsing, provide CRUD (Create, Update, Delete) data form entry support, implement efficient data paging, summer color error .asp id, reuse UI using master pages and partials, secure the application using authentication and authorization, use AJAX to deliver dynamic updates and interactive map support, and implement automated unit testing. From there, the bulk of the rest of the book begins with the basic concepts around the model view controller pattern, including the little history and the state of the MVC on the web today. We'll then go into the ways that MVC is different from sprers.eu Web Forms. We'll explore the structure of a standard MVC application and see what you get out of the box. Next we dig deep into routing and see the role URLs play in your application. We'll deep dive into controllers and views and see what role the Ajax plays in your applications. The last third of the book focuses entirely on advanced techniques and extending the framework.

    summer color error .asp id

    Summer color error .asp id - with you

    Overview of the sprers.eu Framework

    This chapter is from the book 

    Understanding sprers.eu Controls

    sprers.eu controls are the heart of sprers.eu Framework. An sprers.eu control is a .NET class that executes on the server and renders certain content to the browser. For example, in the first sprers.eu page created at the beginning of this chapter, a Label control was used to display the current date and time. The sprers.eu framework includes more than 90 controls, which enable you to do everything from displaying a list of database records to displaying a randomly rotating banner advertisement.

    This section provides an overview of the controls included in sprers.eu Framework. You also learn how to handle events raised by controls and how to take advantage of View State.

    Overview of sprers.eu Controls

    The sprers.eu Framework contains more than 90 controls. These controls can be divided into seven groups:

    • Standard Controls&#;Enable you to render standard form elements such as buttons, input fields, and labels. We examine these controls in detail in Chapter 2, "Using the Standard Controls."
    • Validation Controls&#;Enable you to validate form data before you submit the data to the server. For example, you can use a control to check whether a user entered a value for a required input field. These controls are discussed in Chapter 3, "Using the Validation Controls."
    • Rich Controls&#;Enable you to render things such as calendars, file upload buttons, rotating banner advertisements, and multistep wizards. Chapter 4, "Using the Rich Controls," discusses these controls.
    • Data Controls&#;Enable you to work with data such as database data. For example, you can use these controls to submit new records to a database table or display a list of database records. Part III, "Performing Data Access," discusses these controls.
    • Navigation Controls&#;Enable you to display standard navigation elements such as menus, tree views, and bread crumb trails. Chapter 22, "Using the Navigation Controls," discusses these controls.
    • Login Controls&#;Enables you to display login, change password, and registration forms. Chapter 26, "Using the Login Controls," discusses these controls.
    • HTML Controls&#;Enable you to convert any HTML tag into a server-side control. This group of controls are discussed in the next section.

    With the exception of the HTML controls, you declare and use all sprers.eu controls in a page in exactly the same way. For example, if you want to display a text input field in a page, you can declare a control like this:

    <asp:TextBox id="TextBox1" runat="Server" />

    This control declaration looks like the declaration for an HTML tag. Remember, however, unlike an HTML tag, a control is a .NET class that executes on the server and not in the web browser.

    When the TextBox control is rendered to the browser, it renders the following content:

    <input name="TextBox1" type="text" id="TextBox1" />

    The first part of the control declaration, the prefix, indicates the namespace for the control. All the standard sprers.eu controls are contained in the namespace. The prefix represents this namespace.

    Next, the declaration contains the name of the control being declared. In this case, a control is declared.

    This declaration also includes an ID attribute. You use the ID to refer to the control in the page within your code. Every control must have a unique ID.

    The declaration also includes a attribute. This attribute marks the tag as representing a server-side control. If you neglect to include this attribute, the tag would be passed, without being executed, to the browser. The browser would simply ignore the tag.

    Finally, notice that the tag ends with a forward slash. The forward slash is shorthand for creating a closing tag. You can, if you prefer, declare the control like this:

    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

    In this case, the opening tag does not contain a forward slash and an explicit closing tag is included.

    Understanding HTML Controls

    You declare HTML controls in a different way than you declare standard sprers.eu controls. The sprers.eu Framework enables you to take any HTML tag (real or imaginary) and add a attribute to the tag. The attribute converts the HTML tag into a server-side sprers.eu control.

    For example, the page in Listing contains a tag, which has been converted into an sprers.eu control.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.euext = sprers.eung("T"); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>HTML Controls</title> </head> <body> <form id="form1" runat="server"> <div> At the tone, the time will be: <span id="spanNow" runat="server" /> </div> </form> </body> </html>

    The tag in Listing looks just like a normal HTML tag except for the addition of the attribute.

    Because the tag in Listing is a server-side HTML control, you can program against it. In Listing , the current date and time are assigned to the tag in the method.

    The HTML controls are included in sprers.eu Framework to make it easier to convert existing HTML pages to use sprers.eu Framework. I rarely use the HTML controls in this book because, in general, the standard sprers.eu controls provide all the same functionality and more.

    Understanding and Handling Control Events

    The majority of sprers.eu controls support one or more events. For example, the sprers.eu control supports the event. The event is raised on the server after you click the button rendered by the control in the browser.

    The page in Listing illustrates how you can write code that executes when a user clicks the button rendered by the control (in other words, it illustrates how you can create a event handler):

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnSubmit_Click(object sender, EventArgs e) { sprers.eu = "Thanks!"; } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show Button Click</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnSubmit" Text="Click Here" OnClick="btnSubmit_Click" Runat="server" /> <br /><br /> <asp:Label id="Label1" Runat="server" /> </div> </form> </body> </html>

    Notice that the control in Listing includes an attribute. This attribute points to a subroutine named . The subroutine is the handler for the event. This subroutine executes whenever you click the button (see Figure ).

    You can add an event handler automatically to a control in multiple ways when using Visual Web Developer. In Source view, add a handler by selecting a control from the top-left drop-down list and selecting an event from the top-right drop-down list. The event handler code is added to the page automatically (see Figure ).

    Figure

    Figure Adding an event handler from Source view.

    In Design view, you can double-click a control to add a handler for the control's default event. Double-clicking a control switches you to Source view and adds the event handler.

    Finally, from Design view, after selecting a control on the designer surface, you can add an event handler from the Properties window by clicking the Events button (the lightning bolt) and double-clicking next to the name of any of the events (see Figure ).

    Figure

    Figure Adding an event handler from the Properties window.

    You need to understand that all sprers.eu control events happen on the server. For example, the event is not raised when you actually click a button. The event is not raised until the page containing the Button control is posted back to the server.

    The sprers.eu Framework is a server-side web application framework. The .NET Framework code that you write executes on the server and not within the web browser. From the perspective of sprers.eu, nothing happens until the page is posted back to the server and can execute within the context of .NET Framework.

    Notice that two parameters are passed to the handler in Listing All event handlers for sprers.eu controls have the same general signature.

    The first parameter, the object parameter named , represents the control that raised the event. In other words, it represents the control that you clicked.

    You can wire multiple controls in a page to the same event handler and use this first parameter to determine the particular control that raised the event. For example, the page in Listing includes two controls. When you click either control, the text displayed by the control is updated (see Figure ).

    Figure

    Figure Handling two controls with one event handler.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void Button_Click(object sender, EventArgs e) { Button btn = (Button)sender; sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Button Counters</title> </head> <body> <form id="form1" runat="server"> <div> First Counter: <asp:Button id="Button1" Text="0" OnClick="Button_Click" Runat="server" /> <br /><br /> Second Counter: <asp:Button id="Button2" Text="0" OnClick="Button_Click" Runat="server" /> </div> </form> </body> </html>

    The second parameter passed to the event handler, the parameter named , represents any additional event information associated with the event. No additional event information is associated with clicking a button, so this second parameter does not represent anything useful in either Listing or Listing

    When you click an control instead of a control, on the other hand, additional event information is passed to the event handler. When you click an control, the X and Y coordinates of where you clicked are passed to the handler.

    The page in Listing contains an control that displays a picture. When you click the picture, the X and Y coordinates of the spot you clicked display in a Label control (see Figure ).

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnElephant_Click(object sender, ImageClickEventArgs e) { sprers.eu = sprers.eung(); sprers.eu = sprers.eung(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show EventArgs</title> </head> <body> <form id="form1" runat="server"> <div> <asp:ImageButton id="btnElephant" ImageUrl="sprers.eu" Runat="server" OnClick="btnElephant_Click" /> <br /> X Coordinate: <asp:Label id="lblX" Runat="server" /> <br /> Y Coordinate: <asp:Label id="lblY" Runat="server" /> </div> </form> </body> </html>

    The second parameter passed to the method is an parameter. Whenever the second parameter is not the default parameter, you know that additional event information is passed to the handler.

    Understanding View State

    The HTTP protocol, the fundamental protocol of the World Wide Web, is a stateless protocol. Each time you request a web page from a website, from the website's perspective, you are a completely new person.

    The sprers.eu Framework, however, manages to transcend this limitation of the HTTP protocol. For example, if you assign a value to a Label control's property, the Label control retains this value across multiple page requests.

    Consider the page in Listing This page contains a Button control and a Label control. Each time you click the Button control, the value displayed by the Label control is incremented by 1 (see Figure ). How does the Label control preserve its value across postbacks to the web server?

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show View State</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> <asp:Label id="lblCounter" Text="0" Runat="server" /> </div> </form> </body> </html>

    The sprers.eu Framework uses a trick called View State. If you open the page in Listing in your browser and select View Source, you notice that the page includes a hidden form field named that looks like this:

    <input type="hidden" name="__VIEWSTATE" id="__ VIEWSTATE" value="/wEPDwUKLTc2ODE1OTYxNw9kFgICBA9kFgIC Aw8PFgIeBFRleHQFATFkZGT3tMnThg9KZpGak55pvfInj1w==" />

    This hidden form field contains the value of the Label control's property (and the values of any other control properties stored in View State). When the page is posted back to the server, sprers.eu Framework rips apart this string and re-creates the values of all the properties stored in View State. In this way, sprers.eu Framework preserves the state of control properties across postbacks to the web server.

    By default, View State is enabled for every control in sprers.eu Framework. If you change the background color of a Calendar control, the new background color is remembered across postbacks. If you change the selected item in a , the selected item is remembered across postbacks. The values of these properties are automatically stored in View State.

    View State is a good thing, but sometimes it can be too much of a good thing. The hidden form field can become large. Stuffing too much data into View State can slow down the rendering of a page because the contents of the hidden field must be pushed back and forth between the web server and web browser.

    You can determine how much View State each control contained in a page is consuming by enabling tracing for a page (see Figure ). The page in Listing includes a attribute in its directive, which enables tracing.

    Listing

    <%@ Page Language="C#" Trace="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> void Page_Load() { sprers.eu = "Hello World!"; sprers.euDate = sprers.eu; } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Show Trace</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label id="Label1" Runat="server" /> <asp:Calendar id="Calendar1" TodayDayStyle-BackColor="Yellow" Runat="server" /> </div> </form> </body> </html>

    When you open the page in Listing , additional information about the page is appended to the bottom of the page. The Control Tree section displays the amount of View State used by each sprers.eu control contained in the page.

    Every sprers.eu control includes a property named . If you set this property to the value , View State is disabled for the control. In that case, the values of the control properties are not remembered across postbacks to the server.

    For example, the page in Listing contains two Label controls and a Button control. The first Label has View State disabled, and the second Label has View State enabled. When you click the button, only the value of the second Label control is incremented past 1.

    Listing

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "sprers.eu"> <script runat="server"> protected void btnAdd_Click(object sender, EventArgs e) { sprers.eu = (IntParse(sprers.eu) + 1).ToString(); sprers.eu = (IntParse(sprers.eu) + 1).ToString(); } </script> <html xmlns="sprers.eu" > <head id="Head1" runat="server"> <title>Disable View State</title> </head> <body> <form id="form1" runat="server"> <div> Label 1: <asp:Label id="Label1" EnableViewState="false" Text="0" Runat="server" /> <br /> Label 2: <asp:Label id="Label2" Text="0" Runat="server" /> <br /><br /> <asp:Button id="btnAdd" Text="Add" OnClick="btnAdd_Click" Runat="server" /> </div> </form> </body> </html>

    Sometimes, you might want to disable View State even when you aren't concerned with the size of the hidden form field. For example, if you use a Label control to display a form validation error message, you might want to start from scratch each time the page is submitted. In that case, simply disable View State for the Label control.

    Control.ClientID Property

    Gets the control ID for HTML markup that is generated by sprers.eu

    Property Value

    String

    The control ID for HTML markup that is generated by sprers.eu

    Attributes

    BrowsableAttribute

    Examples

    The following examples show a Web user control that is inside a content page for a master page. The user control contains a DropDownList control and a Label control. The text that is displayed in the Label control is determined by the value that the user selects from the DropDownList control. The text value is set through client script so that the Web page does not have to post back to the server in order to set this value. To get a reference to the HTML element that is rendered for the Label control in client script, you must know the value of the control's ClientID property. However, because the user control can be put anywhere in a Web page, it is impossible to know in advance which naming containers will contain the controls. To make sure that the ClientID value will be the same as the ID value, the code sets the ClientIDMode value to Static.

    The following example shows the user control.

    The following example shows the content page that contains the user control.

    The following example shows the master page that contains the content page.

    Remarks

    When a Web server control is rendered as an HTML element, the attribute of the HTML element is set to the value of the ClientID property. The ClientID value is often used to access the HTML element in client script by using the method. The ID is also often used in CSS rules to specify elements to style. For example, the following CSS style rule selects all elements that have the attribute value of and sets their attribute to :

    sprers.eu provides multiple algorithms for how to generate the ClientID property value. You select which algorithm to use for a control by setting its ClientIDMode property. The algorithms are identified by the ClientIDMode enumeration values that are listed in the following table.

    ValueDescription
    AutoIDThe ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. Each segment is separated by an underscore character (_). This algorithm was used in versions of sprers.eu earlier than sprers.eu 4.
    StaticThe ClientID value is set to the value of the ID property. If the control is a naming container, the control is used as the top of the hierarchy of naming containers for any controls that it contains.
    PredictableThis algorithm is used for controls that are in data-bound controls. The ClientID value is generated by concatenating the ClientID value of the parent naming container with the ID value of the control. If the control is a data-bound control that generates multiple rows, the value of the data field specified in the ClientIDRowSuffix property is added at the end. For the GridView control, multiple data fields can be specified. If the ClientIDRowSuffix property is blank, a sequential number is added at the end instead of a data-field value. Each segment is separated by an underscore character (_).
    InheritThe control inherits the ClientIDMode setting of its NamingContainer control.

    The default value of ClientIDMode for a page is Predictable. The default value of ClientIDMode for a control is Inherit. Because the default for controls is Inherit, the default generation mode is Predictable. (However, if you use Visual Studio to convert a Web project to sprers.eu 4 from an earlier version, Visual Studio automatically sets the site default to AutoID in the sprers.eu file.)

    For more information, see sprers.eu Web Server Control Identification.

    Applies to

    See also

    Professional sprers.eu MVC

    Abstract

    This book begins with you working along as Scott Guthrie builds a complete sprers.eu MVC reference application. He begins NerdDinner by using the File->New Project menu command within Visual Studio to create a new sprers.eu MVC Application. You'll then incrementally add functionality and features. Along the way you'll cover how to create a database, build a model layer with business rule validations, implement listing/details data browsing, provide CRUD (Create, Update, Delete) data form entry support, implement efficient data paging, reuse UI using master pages and partials, secure the application using authentication and authorization, use AJAX to deliver dynamic updates and interactive map support, and implement automated unit testing. From there, the bulk of the rest of the book begins with the basic concepts around the model view controller pattern, including the little history and the state of the MVC on the web today. We'll then go into the ways that MVC is different from sprers.eu Web Forms. We'll explore the structure of a standard MVC application and see what you get out of the box. Next we dig deep into routing and see the role URLs play in your application. We'll deep dive into controllers and views and see what role the Ajax plays in your applications. The last third of the book focuses entirely on advanced techniques and extending the framework.

    Rules

    Rules to Better Websites - Development - 42 Rules

    1. Use .NET MVC over sprers.eu Web Forms .

      Figure: Bad example - Using Web Forms

      Figure: Good example - Using MVC 5Read the Top 5 reasons why you should never use Web Forms again:

      1. Testability - MVC provides true separation of concerns, and makes it easy to test the whole application from Unit Tests to Coded UI Tests
      2. Instant Pages - Get your admin pages up and running faster than ever with improved scaffolding. Don't get bogged down doing Create, Edit, Update, Delete
      3. Better HTML Markup Control - Every layer of obstruction creates new problems down the track. When so much development now involves jQuery or other javascript libraries, MVC simplifies development by putting the developer back in charge of the HTML that is actually rendered
      4. Simpler Debugging - This means that instead of complicated Webform lifecycles, your code either goes into the Route, Controller or View, so you can jump right into coding without an intimate knowledge of the page lifecycle
      5. Mobile Support - With Adaptive Rendering, MVC allows the same User Interface to Render on Different Devices, so users can check it out on their PC, their Tablet or even their Smart Phone

      Or watch the video:

      Use .NET MVC over sprers.eu Web Forms .

      Figure: Bad example - Using Web Forms

      Figure: Good example - Using MVC 5 Read the Top 5 reasons why you should never use Web Forms again:

      Read more

    2. In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

      1. Check the rule in MS Word (or Grammarly) to see if it has spelling or grammar mistakes
      2. Run Link Auditor and Code Auditor on that page
      3. Check the report and fix the errors (if any)
        Repeat step 2 and 3 until Link Auditor and Code Auditor get all green ticks

      In order to keep the content you add is healthy (doesn't have grammar or spelling mistakes), follow the below steps once you add a page:

      Read more

    3. The following structure allows you to keep your website clean of clutter:

      • /Images  - for all static images
      • /Images/Dynamic  - for all images used in dynamically generated pages  NOTE: the reason we use two images directories is so we can exclude images used by dynamically generated pages from our link checking program. This is so we can work out the TRUE orphan images (and believe me, like coat-hangers they multiply quickly )
      • /Includes  - for all include files
      • **/Bin ** - for mdb's, dll's and udl's
      • /Shop  - for the shopping basket and related pages
      • /Clients  - for the client login page and related pages
      • **/Reports ** - for any SQL Server Reporting Services
      • **/zsMaintenance ** - for the administration section to modify web site settings
      • /zsValidate  - for all web server status and validation checks

      The root directory should be clean, having only:

      • default (.aspx, .asp, .htm)
      • sprers.eu
      • **sprers.eu **

      The following structure allows you to keep your website clean of clutter:

      Read more

    4. Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if it's just to show the files inside it.

      It is usually a sprers.eu file, however depending on the webserver configuration; it might be sprers.eu or sprers.eu etc.

      Many times a website contains directories that don't have an index page, and this means a user navigating via the URL, see a error. You don't want this to happen, so make sure you always have an index page in every directory, even if it's just to show the files inside it.

      Read more

    5. A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

      This makes your site very easy to maintain. If you ever want to change the entire look and feel you should only have to change one file.

      A stylesheet file (.CSS) should be used to dictate how the fonts, headings, tables, captions and everything else on your HTML should be displayed.

      Read more

    6. It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake of missing a quotation could lead to undesired results on the web page.

      Figure: Bad code - Can you see the missing quote? Code Auditor can

      Figure: All OK

      As you can see from the above example, just missing a quotation makes the whole layout of the text different. So be very careful that you make sure you have closed all opening quotations of attributes with equivalent closing quotations.

      We have a program called SSW Code Auditor to check for this rule.

      It is always better to make sure there are equivalent closing quotations for HTML attributes. A small mistake of missing a quotation could lead to undesired results on the web page.

      Read more

    7. Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

      The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

      The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

      Note:  <code> tags should not be used because they only provide the font Courier - you still have to manually indent all of your code as in the bad code display example below.

      Figure: Bad code display example - using <font>

      Figure: Bad code display example - using <code>

      Figure: Good code display example - using <pre>

      Tip:  Do not use auto-format (Ctrl-K, Ctrl-F) in Visual Studio when updating page with <pre> tags, or it will destroy all the code formatting. We have made a suggestion to Microsoft to fix this.

      Any website designer that needs to display code should be aware that there is a very simple method for simply formatting code, and there is a slow and complex method.

      The complex method requires formatting each line with HTML tags (such as <br> and  ) to ensure the code looks nice and pretty.

      The simpler method uses <pre> tags. Pre (standing for "preformatted") means that the code is formatted exactly as it is written in the HTML window. This means the page designer can format code in a very simple fashion, without worrying about tags.

      Read more

    8. You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

      It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

      The following benefits of using heading tags:

      • Improves the ranking with the search engines (extra weighting is given to text in H1 and H2)
      • Makes cleaner and leaner HTML

      Figure: Bad example - Using span tags and CSS classes to insert headings to content

      Figure: Good example - Using heading tags

      You should understand the hierarchy and try to use the heading tags (<H1>, <H2> or <H3>) for titles and subtitles.

      It's also important to customize these headings via CSS, making the font bigger, bold or in a different color. This way page looks nice and organized.

      The following benefits of using heading tags:

      Read more

    9. These are the things you should consider when creating an anchor link:

      1. Make it meaningful - When you define anchors names, use meaningful names. When you are sending the URL by email it helps indicate what you are talking about. Avoid list numbers, as they often change. An anchor like "#13" becomes incorrect when the order changes.
      2. It is case sensitive - Are and the same? The answer is "no" because they might be not case sensitive when they test in some browsers.
      3. No spacing - When you are defining an anchor name, make sure there are no spaces within the name

      bad Bad example: Spaces within anchor name

      good Good example: No spaces within anchor name

      1. Don't define names starting with a # - This is a common mistake because the # is used on the "href"

      When you are defining an anchor name you do not use a hashtag.
      Bear in mind that when you are referencing an anchor you do use a hashtag.

      bad Bad example: Hashtag on anchor name

      good Good example: No hashtag on anchor name

      We have a program called SSW Code Auditor to check for #3 and #4 on this rule.

      These are the things you should consider when creating an anchor link:

      Read more

    10. Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization (SEO) gurus are always looking to find new ways to increase their Google rankings.

      As we all know, a website is a pretty nifty thing to have for a myriad of different reasons. But the truth is that it's worth is derived from the people that surf it, and if no one is surfing it, then it becomes useless. So who's the biggest website referrer? The answer is Google in almost every case.

      So design your website with this in mind. In the eyes of a search engines, there are good and bad ways that you can design your website. Here's a list of suggestions to improve your Google ranking and other search engine optimization tips

      Google is by a country mile the most popular search engine in the world. It's popular because it seems to rank pages so accurately and quickly time and time again. The secret to its success is its top secret PageRank Algorithm. Google developed its page ranking system in an effort to increase the quality of search results and has left all of its competitors for dead. As a result search engine optimization (SEO) gurus are always looking to find new ways to increase their Google rankings.

      Read more

    11. Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your website is used.

      By using Google Analytics, you will be able to see what your visitors are viewing and what they aren't, what they spend large amount's of time on, what pages are causing errors, what pages are directing visitors to you, which browsers and devices are being used to see you site and more. All this information help you better structure your site to what your visitors like. It also allows you to compare site traffic from one month to another.

      The most useful reports:

      • Which are your most popular pages of your website
      • Which sites are referring the most hits to you
      • Which keywords are bringing users to your site
      • If you have downloads, which are the most popular

      To add Google Analytics to your website:

      1. Log into your Google account,
      2. Go to Admin ,
      3. Ensure both Account and Property
      4. Specify your website details,
      5. Find your Tracking Code,
      6. And add the script to your website
      tracking code property

      From this page, you will be able to get a JavaScript snippet to include in your application.

      20 08 3 30 55 PM compressor
      20 08 10 53 15 AM compressor

      Once deployed, this script will start tracking metrics and interacting with Google Analytics.

      You are good to go!

      Google Analytics gives you a great insight into how, when and where your website is used. If you're not using an analytics package in your website, you're flying blind when it comes to understanding how, when and where your website is used.

      Read more

    12. If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

      The exception to this is if you are using open-source data. sprers.eu is a good example of this.

      wordpress edit
      github edit

      From Github, you can edit and submit a pull request. See sprers.eu (SSW People) or sprers.eu (SSW Rules) for more details.

      This is better than sending a 'Change from X to Y' email as the work can be done immediately with less work and management requirements.

      If you have database driven pages on your website, you need a way of updating the data quickly and easily. Each page should have an 'Edit' link - only visible when the site is running internally or in administrator mode - that takes you directly to the page for editing the content on that page.

      The exception to this is if you are using open-source data. sprers.eu is a good example of this.

      Read more

    13. Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately. No website is immune to such errors.

      A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if you have one.

      Figure: Bad example - The default code on sprers.eu

      Figure: Good example - The custom code in the sprers.eu

      For sprers.eu website, the detailed information would be presented to the remote machines when an unhandled error occurs if the customErrors mode is off.

      This error information is useful for the developer to do debugging. However, it would leak out some confidential information which could be used to get into your system by the hackers. We can assume that if a SQL exception occurs by accident, which may expose database sensitive information (e.g. connection string; SQL script). So, to prevent these leaks, you should set the "mode" attribute of the tag <customerrors> to "RemoteOnly" or "On" in the sprers.eu file and create a user-friendly customized error page to replace the detailed error information.

      Figure: Good example - Turning on "customErrors" protects sensitive information against Hacker

       bad
       good

      Error page, you say? You worked hard to make sure my site has no errors!! Well, surfers don't always type URLs accurately. No website is immune to such errors.

      A well-designed custom error page encourages surfers to remain in your site and help them to the right page. Although it's possible to redirect error codes straight to your homepage, that doesn't tell visitors what's going on. It's more user-friendly to explain that there was a problem and provide some alternatives. Supply a link to your home page or other links, or offer your site's search function if you have one.

      Read more

    14. When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct.E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

      In .NET you are allowed to define a custom error page. When a user tries to access a URL which doesn't exist, .NET changes the URL and redirects to the custom error page. The original URL is passed as a parameter to the new URL.

      The advantage of this solution is, that the page looks nice and you can customize it according to the design and layout of your whole site.

      The disadvantage is, that .NET changes the URL. So if the user wants to correct the URL he entered, for example, because he just mixed up a letter, then this means quite a lot of work for him. He has to retype the whole URL or at least copy and paste the parameter out of the new URL. This is very uncomfortable for the user.

      Our solution is to show the customized error page while not change the original URL. So if the user wants to do any corrections, e.g. a mixed up letter, he can do that by just editing the URL in the address sprers.eu advantages of this solution are, that the site looks nice and matches the design of the whole site and that the user can easily change the original URL he typed.

      You can try any page name that doesn't exist like sprers.eu on the URL and it will open our error page. The original URL is not changed in the address bar. It should look like this:

       good

      In order to show the customized error page while not change the original URL, you can use sprers.euer() to keep the original URL.

      **Figure: Custom error page handler in sprers.eu **

      Related rule

      When you request a URL of a file that doesn't exist, you will get an error message. You should make sure that the URL in the browser doesn't change. This way, it's easy for the user to correct. E.g. The user doesn't have to retype the whole URL if there is a spelling mistake or a forgotten/mixed up letter

      Read more

    15. sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, FireBug or IE8 developer Tools.

      JavaScriptBad1
      JavaScriptBad
      JavaScriptGood

      So you should always put JavaScript in a separate file. Then the line numbers will stay consistent during sprers.eug JavaScript in a separate file is also good for production as it improves performance due to browser caching.

      Note: During development, remember to hit CTRL-F5 to force the browser to re-fetch the files from the server or you may be debugging old version of the JavaScript file.

      sprers.eu injects many lines during page rendering, so if you are using inline JavaScript, the line numbers will change during client side JavaScript debugging in sprers.eu, FireBug or IE8 developer Tools.

      Read more

    16. When you build a web application, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

      • Bookmarking of the pages
      • Gives the user to the ability to change the query string values in the address bar, rather than having to go back to the input form.
      querystring

      You may hear that query strings are bad and they leave you wide open to SQL Injection Attacks (especially when you use SQL statements in the URL). I don't subscribe to the security issues being the determining factor if I am determined enough, I can write a little application to send POST data to the webpage instead of in the query string. Both methods are open to SQL injection and invalid parameters, so you need to code to prevent that either way.

      The bottom line is that if you are not giving appropriate parameters in the query string then you are reducing functionality.

      Note: We all agree bookmarks are useful - it's the same for query strings.

      When you build a web application, any dynamic page you think a user may wish to bookmark directly should be controlled through query string values rather than form values. In other words, search mechanisms should use the HTTP GET Request and Querystring values, rather than a POST with Form values. This allows:

      • Bookmarking of the pages
      • Gives the user to the ability to change the query string values in the address bar, rather than having to go back to the input form.

      Read more

    17. **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

      Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

      Then you need to:

      • add the JavaScript function eg. ValidateLength(control)
      • add 2 properties to every data control  eg. dataType="char" onkeyup="validateLength(this)"

      **Rule 1: ** Whenever you have a data entry page you should always use the html maxlength attribute to limit number of characters to the length of the field in the table (except for numbers).

      Rule 2:  Whenever you have a situation where you are using the HTML textarea (does not have the maxlength property)

      Read more

    18. When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source code will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

      Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

      1. Web Site Project

      Publish Web Site dialog box is designed to precompile and deploy your Web site to a new location (whatever it is, ftp://, http:// or drive:\path). During the deployment, source code are removed automatically. Besides, the precompilation process finds any compilation errors and identifies the errors in the configuration file.

      To access this dialog box, please open a Web site that you want to deploy and click Build menu, then click Publish Web Site .

      PublishWebsite

      See more about Publishing Web Sites.

      2. Web Application Project

      The Publish Web dialog box enables you to build and publish a Web application project to a new location. Like Publish Web Site dialog box, this utility can remove source code. However you have to select Only files needed to run this application to specify it. Other benefit of this utility is that potential errors and compile-time errors in the sprers.eu file and in other non-code files can be found.

      To access this dialog box, open a Web application project that you want to publish and click Publish ApplicationName on the Build menu.

      PublishWebApp

      See more about How to Publish Web Applications.

      When you are deploying an sprers.eu project (no matter it's a Web site or a Web application), do not copy all files of this project to the production server because source code will be deployed during this simple copy and it makes easier for others to access or tamper the source code of your site.

      Instead, please use 'Publish' utility to deploy your Web site or Web application. This utility can remove the source code from the site.

      Read more

    19. Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

      Bad Example

      Good Example

      Initially, errors of this nature would be picked up in the link checking utility. However, that is not the case because the link checker will not report any problems if you run it locally - which is the normal method. The reason it won't see the problems is because the link checking utility does not check hard coded links to local servers (e.g. localserver/ssw/sprers.eu). Therefore, it is testing a page that will exist internally, but the page will not exist when uploaded to the web (e.g. sprers.eu).

      Read more

    20. If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp. We use WhatsUp to do real-time sprers.eu these steps to check your website in WhatsUp:

      1. Add your website as a new device.
      2. Ping monitor is added automatically.
      3. Add an HTTP Content Scan monitor.
      4. Edit the scan script. In the script, you can see 2 keywords "Send" and "Expect". "Send" expression is an HTTP request to your website. "Expect" expression is a regular expression to check the key word in response from your website.
      1. Add the monitor to your device.

        Once a device is down or up, a WhatsUp action will tell SQL Reporting Services to send out a notification report. Our report looks like this:

      If you want to know your website is working or not, you need to add a ping check to the machine also an HTTP Content Scan to the website in WhatsUp. We use WhatsUp to do real-time monitoring. Follow these steps to check your website in WhatsUp:

      Read more

    21. Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

      Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

      On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

      PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

      In order to be a PWA, your app should:

      • Use a responsive design , so it works on desktop or mobile.
      • Be fast , using a service worker to precache the app resources (HTML, CSS, JavaScript, images) needed to run, and cache the data at runtime to improve performance.
      • Be installable , using a web app manifest and the beforeinstallprompt event to notify the user that it is installable.

      Examples of Progressive Web Apps can be seen at sprers.eu.

      pwa bad example
      pwa example

      You can check the Progressive Web App score of your application using Chrome's Developer tools.

      Note: See how to generate a PWA report on sprers.eu#devtools.

      PWA tools

      Progressive Web Apps have transformed the mobile web practices to provide a native app like experiences for the users. They work just like native apps and include features such as smoother navigations, offline modes and push notifications, but are much more economical and do not use the device storage.

      Progressive Web Apps are reliable which means they load instantly and the performance isn't compromised even if the network is shaky.

      On the mobile the 'Add to homescreen' option can be used to create an icon on you phone.

      PWAs also account for higher user engagements and conversions which is probably why many organizations are now adapting this technology to grow their businesses.

      Read more

    22. If you are dealing with Content Management System (CMS), you are likely to play with pages with large amount of images and embedded videos. To improve the performance of those pages, and save bandwidth for the readers, loading content asynchronously (also called “lazy loading”) is recommended.

      It means the browsers will only load images and embedded videos in the visible area by default, then load the rest images and videos while users are scrolling down to them.

      On our rules web site, one of the pages’ initial loading size of images reduced from MB to KB after being applied “lazy loading” of images:

      load images 1
      
    BlueDragon
    Admin Console
    BlueDragon
    Admin Console, Security
    Can I remove the BlueDragon Admin console?
    After configuring your BlueDragon .NET website, you can remove all access to the Admin UI by removing or renaming adminbda or adminbda located in the \config folder of the BlueDragon installation. sprers.eu is using adminbda if you are using Microsoft .NET Framework and using adminbda if you are using .NET Framework version
    BlueDragon
    Admin Console, Miscellaneous
    Can you explain more about the possibility of encrypting and precompiling templates (or &#;sourceless deployment&#;) in BlueDragon?
    Developers often want to deploy their code without source (sourceless), and while this has long been a problem for ColdFusion developers, BlueDragon has solved this problem since

    Developers familiar with the ColdFusion CFENCODE (or previously named CFCRYPT) utility know that there are ways to revert that back to source code. Many developers have simply given up on the hope of sourceless deployment.

    BlueDragon offers sourceless deployment with a feature called Precompiled, Encrypted CFML Templates. Offered in all but the free Server edition, you can create precompiled or encrypted templates from the Admin console or via a command-line utility. (The free Server edition also cannot process precompiled or encrypted templates, but all other BlueDragon editions, including in their trial and developer modes, can run precompiled/encrypted templates.)

    The output of the process for each input .cfm (or .cfc) file is a new file with the same extension, but which is not human readable. (See the BlueDragon User Guide for more information.)

    Note that you can compile all or just some of your CFML templates.

    Additionally, BlueDragon uniquely supports setting an expiration date for your code during the precompilation/encryption process, so your code can be offered as a trial that will expire on the date set. Note that only the code expires, not the BlueDragon engine, so to offer a new set of code without an expiration date (or with a new one), you only need to give the client the new code (there's no need to reinstall BlueDragon).

    Finally, note as well that the encrypted templates feature also offers greater security in a couple of different aspects.

    If you'd like additional background information on the precompilation or encryption processes, see below.

    Background: Page Processing

    To understand this unique feature, it's important to understand how BlueDragon processes CFML templates (pages). CFML processing is done by BlueDragon in two steps:
    1. In step one, BlueDragon "parses" the static information in the CFML page (which tags does it contain, what attributes do the tags have, which portions of the page are plain HTML, etc.) and creates a representation of the page as an ordered collection of Java objects.
    2. In step two, the objects created in step one are "rendered" to create the HTML response that's sent to the browser. This is the dynamic, "runtime" step where expressions are evaluated, queries are executed, session and client data is managed, etc.

    The parsing step only needs to be done once, the first time a page is requested--the object representation of the page is stored in memory in BlueDragon's "file cache" and the CFML source code isn't needed anymore. For subsequent requests for the page, the object representation is retrieved from cache and rendered directly. Of course, if a page is removed (flushed) from the cache, or the CFML source file is modified, the parsing step has to happen all over again.

    Precompiled Templates

    Here's where the "Precompiled" part comes in. The Java objects that represent the parsed CFML page can be serialized (converted to a byte stream) and written to a file. Therefore, a precompiled template is one where the CFML source has been parsed by BlueDragon, converted to a collection of Java objects, and then those Java objects are written (serialized) back to the file in place of the original CFML source. (Note that the process of precompiling destroys the original CFML source, so make a backup first!).

    There are two advantages to precompiled templates:

    1. Because the CFML has already been parsed, BlueDragon can skip that first step and directly render the page. This saves processing time and improves performance, even if the page isn't stored in BlueDragon's file cache.
    2. It provides a level of obfuscation that helps protect your CFML source from prying eyes. It will be difficult (but not impossible) for someone to figure out how to de-serialize the Java objects that represent the CFML page, because those objects are proprietary to BlueDragon and their definition is not publicly available. But, even if someone does figure out how to de-serialize a precompiled template, all they'll get for their efforts is a bunch of Java objects--not your CFML source code.

    Encrypted Templates

    Additional security for your CFML source code can be provided by creating "Encrypted" precompiled templates. When you create precompiled templates (either from the admin console or via a command-line tool), you have the option of encrypting the resulting serialized objects using industry-standard, commercial-grade encryption algorithms provided by the Java VM (see sprers.eu for details).

    The advantage of encrypting your precompiled templates is that it makes it extremely difficult (almost impossible) for anyone to decrypt the templates and reconstruct your CFML source. The disadvantages of encryption are that it significantly increases the file size, and eliminates the performance advantage of precompiling due to the extra processing required to decrypt the template.

    There's more. Any CFML template encrypted using BlueDragon's built-in "default" key can be decrypted and run on any version of BlueDragon. However, you also have the option when creating precompiled, encrypted templates to have BlueDragon generate a unique key for that set of templates. Then, those templates can only be decrypted when that unique key is configured in the BlueDragon admin console. You can choose to create a single unique key and distribute that key to all your customers so they can run your code; or, you can create a unique key for each individual customer. It depends on what level of control and security you need.

    What About the Former BDA Approach

    Finally, for those of you who were interested in BDAs (BlueDragon Archives), here are the problems we discovered with BDAs, all of which are successfully addressed by Precompiled, Encrypted Templates:
    • Deployment of BDAs is awkward. There are several issues here:
      • The BDA only contains the dynamic contents of the application directory structure (".cfm", ".cfc", etc.) and not the static contents (".html", ".gif", ".js", ".css", etc.). This makes deploying an application somewhat disjoint: you have to deploy the original directory structure minus the dynamic content, and then also deploy and configure the BDA.
      • Some of our customers only want to encrypt certain sub-directories of their application and not the entire application; some want to encrypt only custom tag libraries or CFCs. Again, this makes for a somewhat disjoint deployment using BDAs.
      • The configuration required for BDAs can be confusing and error-prone for our customers or their customers.
    • "Default document" processing doesn't work with BDAs. That is, if you configure "sprers.eu" as the default document for a directory request (a request ending with "/"), it doesn't work if the sprers.eu file is within a BDA.
    • Microsoft IIS web server has an option to "check that file exists" before handing the request over to BlueDragon for processing, returning a Not Found result to the browser if the file doesn't exist. This doesn't work for BDAs. (Other web servers may have similar options).
    • With BDAs, it's not possible to update individual files for "patching" an application.

    For our customers who are committed to using BDAs, we'll continue to support them as long as you need them (BDA support still exists in BlueDragon and , we're just not going to publicize it anymore).

    Precompiling from the Command Line

    As mentioned above, it's possible to perform the precompilation from the command line, in addition to the Admin console option. The utility is called simply precompile (bat, exe or sh depending on operating system) and is found within the BlueDragon installation in either the bin directory of the java editions or the precompiler directory in sprers.eu

    Learning More

    The precompilation feature is discussed further in the BlueDragon User Guide. In the edition, it's in section

    We hope you find this new feature interesting and useful. As always, we look forward to your feedback to help us improve this feature and others supported by BlueDragon.

    BlueDragon
    Admin Console, Version differences
    Do I need to apply hotfixes if I just downloaded the latest version?
    Between releases of BlueDragon we may roll up several bug fixes into a "hotfix". Such hotfixes are NOT incorporated into the downloadable version of the product, until we come out with a new point release. For instance, for the edition, we came out with hotfixes (for all BlueDragon editions) in May and August , and until the next point release (), there will be no update to the installer.

    So, yes, you still need to apply hotfixes even if you just downloaded the "latest" version, assuming there are any hotfixes to apply. They are listed at sprers.eu

    If you haven't taken the time to apply those updates, we recommend you do. As the page points out, it's only necessary to apply the latest hotfix (if more than one exists), because the hotfixes are cumulative.

    In order to determine whether you need the update, you may need to determine what release of BlueDragon you're currently running. See FAQ #

    Applying a hotfix is quick and painless. The sprers.eu file associated with the hotfix zip file for each edition (and operating system) explains the steps needed to apply the update. It's just a matter of stopping BlueDragon (or the J2EE or .NET server), copying/renaming one or more files as directed (never more than a few), and then restarting and confirming the new release.

    BlueDragon
    Admin Console, Miscellaneous
    Do you have any performance tuning recommendations?
    Tuning BlueDragon should generally involve the same practices and techniques used with ColdFusion.

    You should carefully consider all the settings in the BlueDragon Admin console. The defaults may require tuning in your environment (such as the default of 3 for each datasource's "maximum connections", or the file cache size of 60, or the "max heap size" of k in the Java editions).

    Note as well that BlueDragon offers some advantages in performance reporting, over CFMX, in that there are several "runtime state" reports in the BlueDragon Admin console, for both the entire server, each datasource, and the file/template cache. These reports can help identify bottlenecks, as well as help you determine the correct values to enter for the Admin console settings.

    Of course, nearly any CFML application will benefit from judicious use of caching, whether query caching (CFQUERY CACHEDWITHIN and CACHEDAFTER and BlueDragon enhancements), page output caching (CFCACHE), partial page caching (BlueDragon's own CFCACHECONTENT). A good primer on CFML caching techniques is Caching in ColdFusion, by Matt Boles at Macromedia. (Note that if you use or are interested in Brandon Purcell's CF_Accelerate tag, we support that as well.)

    Other code optimization techniques are offered in the CFMX manuals on Optimizing ColdFusion applications

    Finally, as for configuring the environment (OS, web server, DBMS), we don't have any specific performance tuning recommendations for BlueDragon, but again some of the common techniques recommended for ColdFusion would apply. There have been several such resources posted by Macromedia. If you have any questions or concerns regarding the recommendations there and whether they apply to BlueDragon or in your environment, we're happy to discuss them with you.

    Additionally, there are some .NET-specific aspects to consider for those running the .NET edition of BlueDragon. The final chapter of the manual, Deploying CFML on sprers.eu, lists several generic .NET resources, including some focused on .NET tuning. We will also be adding more information (there or in a technote) elaborating on such issues of particular interest to CFML developers.

    You may also find FAQ # to be of interest.

    BlueDragon
    Admin Console, Supported Features, Web Application
    Does BlueDragon support clustering and session replication?
    It is indeed possible to do clustering with BlueDragon, and even enable session replication across servers in a cluster with the J2EE and .NET editions. Such clustering support is not enabled by features of BlueDragon but rather by those of the platform on which BlueDragon is installed (in the case of session replication, it's enabled by the underlying J2EE server or .NET framework).

    Clustering servers is typically done using hardware or software mechanisms that offer load balancing and fail-over. Such mechanisms have been used with all editions of BlueDragon.

    A common limitation with ColdFusion's built-in clustering (and indeed with some other clustering solutions) is that it forces the use of what are called "sticky sessions", meaning that once a user with a given session is on a given machine, they must stay on that machine. This reduces reliability, since if that one machine goes down, the user and their session cannot be "failed over" to another server in the cluster.

    With the J2EE and .NET editions of BlueDragon, this issue can be eliminated. The platform on which BD is deployed will control whether clustering and failover works, and if the platform also supports session replication (between servers in the cluster), then CFML sessions created in these editions will benefit from that session replication.

    In the BlueDragon Admin console, one can declare that "j2ee sessions" (or ".net sessions" on .net) should be used, which means that BlueDragon does not manage the sessions but instead the underlying platform does.

    No other change is required of your CFML code. You continue to set and get session variables the same way you do already.

    If you then enable clustering and/or replication of sessions between servers, your CFML sessions will be replicated. (The use of such session replication has been found to fail with ColdFusion MX and certain J2EE servers, including WebSphere Network Deployment edition, among others. BlueDragon has been found to support session replication in all environments tested.)

    Note that BlueDragon supports persistence of CFC instances to sessions, and those can be replicated as well. (This is possible because BlueDragon supports serialization of ColdFusion Components, where ColdFusion does not.)

    Many shops have switched to using Client variables instead to support persistence of a user's data across servers. BlueDragon certainly supports client variables, but note that sessions can be set to timeout in a timeframe of minutes while client variables timeout in a timeframe of days (so people have to build custom solutions to clear out a user's client variables to simulate a timeout). The ability to return to using sessions in such cases can relieve some challenging problems.

    To learn more about the mechanisms for session replication supported in a particular J2EE server, see that server's documentation. In .NET, sessions can be persisted to either a database or "state server", as configured in the sprers.eu or sprers.eu files with the .NET sessionState directive, as discussed in such resources as:
    sprers.eu

    Additionally, .NET users should also consider the commercial product, ScaleOut State Server, which offers many improvements over .NET's built-in session State Server mechanisms (and was built by former Microsoft engineers responsible for the state server feature).

    BlueDragon
    Admin Console, Exceptions, Supported Features
    Does BlueDragon support the notion of limiting the execution time of CFML pages?
    BlueDragon does not support page execution timeouts in all the same ways developers may expect from their experience with ColdFusion.

    First, BlueDragon does not currently support an admin console setting to "Timeout Requests" for all pages.

    Second, like CFMX, BlueDragon does not support the use of RequestTimeout as a query string.

    The .NET edition of BlueDragon does support the new CFSETTING RequestTimeout attribute, which was introduced in CFMX. If a CFML page on BlueDragon/.Net gets the .NET error, "Request timed out", this can be resolved by adding the CFSETTING tag (or increasing its timeout value) either on the page that's timing out or in the sprers.eu (to affect all pages in that application).

    Also note that by default, the page timeout for all .NET web pages is 90 seconds. This is imposed by the .NET framework, not BlueDragon. It can be configured in the sprers.eu (or sprers.eu) file by using in the executionTimeout attribute of the <httpRuntime> element. For example:

    Finally, the Java editions of BlueDragon do not support the CFSETTING attribute RequestTimeOut attribute. Indeed, they simply ignore it if used. As such, in the Java editions of BlueDragon, there is currently no way to limit execution time for a CFML page.

    BlueDragon
    Admin Console, DataSource, JDBC
    How can I add a datasource for a database not listed in the &#;driver types&#; drop-down?
    Database access in BlueDragon is based on the standard Java JDBC API (for the Java-based products, Server, Server JX, and J2EE) or sprers.eu (for the .NET edition). It also supports ODBC in all editions, when deployed on Windows.

    Depending on the edition of BlueDragon you're using, BlueDragon may provide built-in drivers or you may be able to add support for other databases, if you can obtain and install the needed drivers.

    Free Server Edition

    The free Server edition allows use of ODBC databases (on Windows) and (on Linux or OS X) either PostgreSQL or MySQL only. See below for issues regarding using ODBC and MySQL databases.

    Server JX and J2EE Editions

    The other editions, BlueDragon Server JX and BlueDragon/J2EE, are bundled with JDBC drivers for Microsoft SQL Server, Oracle, and PostGresQL databases. See below for issues regarding using ODBC, MySQL and other databases.

    .NET Editions

    BlueDragon for the Microsoft .NET Framework comes bundled with sprers.eu drivers for Microsoft SQL Server and Oracle. See below for issues regarding using ODBC and MySQL databases.

    ODBC Datasources: All Editions

    All editions provide access to ODBC datasources on Windows machines. To add a datasource for MS Access or another ODBC datasource (such as MySQL, PostGreSQL and more), see How do I add a datasource for MS Access and other ODBC databases?.

    MySQL: All Editions

    For information on defining MySQL Datasources, see How can I define a MySQL datasource?.

    Other Databases: Server JX and J2EE Editions

    What about other databases, such as DB/2 or DB2, Sybase, Informix, Ingres, SAP DB, Firebird, Pointbase, Cloudscape, etc.?

    In order to access a specific vendor's database product on a Java version of BlueDragon, a JDBC driver for that product must be installed in BlueDragon (supported only on the Server JX and J2EE editions). For additional information about JDBC, see:

    sprers.eu
    To add another database driver, install it per the driver's instructions and add the location to the BlueDragon classpath (in the admin console, go to "BlueDragon Server>vm classpath". Restart BlueDragon. Then, to configure the datasource on the "Datasources>Configure" page in the BlueDragon administration console, select "Other". The online help for the next page of the datasource wizard contains instructions on providing the driver class name and database URI for the driver you're adding.

    See the online help in the BlueDragon administration console for further details, as well as further discussion in the BlueDragon User's Guide.

    Other Databases: .NET Edition

    What about other databases not listed in the drop down for adding datasources?

    In order to use any databases other than those listed in the Admin Console, you must use an ODBC datasource. See the discussion above about ODBC datasources.

    BlueDragon
    Admin Console, Administration, DataSource
    How can I define a MySQL datasource?
    MySQL is supported in all BlueDragon editions, either via JDBC or ODBC.

    In the Server JX, J2EE, and .NET editions, an option is offered in the datasource configuration page of the administration console. In all editions, a MySQL datasource can be defined using ODBC.

    In all cases, we do not provide the MySQL database drivers with BlueDragon. MySQL AB restricts redistribution of the MySQL drivers with other products, though the database itself is open source. For more information, see the MySQL Licensing Policy for more information.

    But installing it is simple enough, whether to use ODBC or JDBC. The following steps describe first using the ODBC and then the JDBC driver.

    Steps to using the MySQL ODBC Driver for all BlueDragon editions

    • Download the latest MySQL Connector/ODBC driver from the MySQL web site:
      sprers.eu
      1. After reviewing information on the page, choose the link for the latest stable release.
      2. On the page that follows, scroll down to the download links.
      3. Choose the download appropriate to your platform (choose "pick a mirror", then any listed site, and download using either http or ftp as you prefer).
      4. For Windows users, run the installer and proceed to define an ODBC datasource using the Windows ODBC control panel. For other users, consider using the JDBC driver discussed below, or follow the instructions offered on the MySQL site for installing and using the ODBC driver.
      5. Once an ODBC datasource has been defined, view the "data sources" page in the BlueDragon Admin console and choose the "ODBC Refresh" button below the list of any current datasources. BlueDragon will refresh the list with any ODBC datasources you have defined.

    Steps to using the MySQL Driver for Server JX and J2EE editions

    • Download the latest MySQL Connector/J driver from the MySQL web site:
      sprers.eu
      1. After reviewing information on the page, choose the link for the latest stable release.
      2. On the page that follows, scroll down to "Sources and Binaries".
      3. Choose the "download" link. Windows users will likely prefer to choose the zip file format, while Linux, Solaris, Mac and other users may prefer the sprers.eu format.
      4. The next steps (to extract the driver from the compressed file) will vary depending on the file type chosen, your operating system, your browser, and your installed support for unzip-type programs. The files within the compressed file (zip or sprers.eu file) are stored within it in a directory such as mysql-connector-javastable (your version of the driver may be slightly different).
      5. You can choose to extract the files from the compressed file to a directory of that same name (mysql-connector-javastable) on your system. But of all the files within the compressed file, the only one that really matters for use with BlueDragon is the actual driver jar file, which for the version would be named sprers.eu You may choose to extract just that file, and place it on your file system within the BlueDragon directory as discussed in the following sections.

    • Configure BlueDragon to recognize the driver
    • The steps to configure BlueDragon to recognize the MySQL driver will vary from product to product (Server, Server JX, .NET, and J2EE):
      • In the Server (non-Windows) or Server JX editions, simply save the jar file (from above) as sprers.eu in the lib directory under BlueDragon, such as:
        C:\BlueDragon_Server_JX_61\lib\sprers.eu
        Then restart BlueDragon.
      • In the J2EE edition, you can leave the file named as it was on download, but simply place it in the WEB-INF/lib directory of the web application.
      • It's also possible in the Server JX edition to place the jar file anywhere in the file system and use its original name. Simply go to the "BlueDragon Server>vm classpath" page of the administration console and add the path to the JDBC driver JAR file. Then restart BlueDragon.
      After making these changes and restarting BlueDragon, you can then define MySQL datasources using the provided "MySQL" option on the drop-down for driver types in the BlueDragon administration console.
    For the .NET edition, follow the steps outlined in the admin console page for adding a MySQL datasource.

    We encourage you to review the MySQL licensing policy before using their JDBC driver (or the MySQL database) with BlueDragon, as there are circumstances where they require you to purchase a commercial license or risk having your software "infected" by the GPL:

    sprers.eu
    If you're looking for a database that--unlike MySQL--can be used for free in all circumstances, we recommend that you consider PostgreSQL:
    sprers.eu
    The PostgreSQL JDBC driver is bundled with all BlueDragon editions.
    BlueDragon
    Admin Console, Security
    How can I secure the BlueDragon Admin UI in BlueDragon?
    The following are some suggestions:
    1. Password protection:
      Password-protect access to the admin pages by configuring and admin password on the "License & Security" page of the BlueDragon Admin UI

    2. IP Filtering
      Access to the BlueDragon Admin UI can be restricted to particular client computers. To list the ips which will be allowed access, simply add them in a comma-separated list in the BlueDragon Admin UI under License & Security tab. Use the Help button at the top of the License & Security page for specific examples when configuring this option.

    3. Remove the Admin Pages
      You can entirely remove the Admin UI by removing or renaming the file for the Admin UI which is located in the folder of the BlueDragon installation.
      For example, with BD .NET this would be a file named either or . sprers.eu uses one other other, depending on which version of the .NET framework ( or ) is being used.
      See BD FAQ # for info on how to switch .NET framework versions.
      With BD JX, the name of the file is just

      If you choose this option, be aware that you must then manually make any changes to the global or individual sprers.eu file (whose location for a given web site or web app is discussed in the BlueDragon/.NET documentation).

    4. Rename the Admin Console
      It is indeed possible to rename the url used to access the BlueDragon Admin console. The default is to append /bluedragon/sprers.eu to the URL for the web site or given virtual directory (or directory configured as a web application, as discussed in the documentation). You can change the path used to call up the Admin console by manually editing the sprers.eu

      (Notice that there is no /bluedragon/sprers.eu file in the web application. BlueDragon uses an internal mechanism, driven by configuration within the sprers.eu, to control the URL to be used.)

      Within the <server> <file> element, there is an <application name="admin"> node:

      <server>
        <file>
          <application name="admin">
            <name>admin</name>
            <path>C:\sprers.eu\config\sprers.eu</path>
            <context>/bluedragon</context>
          </application>
        </file>
      [other elements may follow this ]
      </server>

      You can simply change the <context> element to something other than bluedragon, then use that in the URL to call up the Admin console (still adding the /sprers.eu after that when typing the URL in the browser, not by adding it in the XML above).

      If you wanted to change the admin console URL for all web apps on the server, apply this change in the global sprers.eu admin file.

      Finally, if you change the sprers.eu file, you must restart the affected web app for the changes to take effect. See the documentation on how to restart web apps.

    BlueDragon
    Admin Console, DataSource
    How do I add a datasource for MS Access and other ODBC databases?
    It's certainly possible to use MS Access and other ODBC datasources (on Windows machines), including PostGreSQL, MySQL, and others. Before discussing this, be aware of the difference between adding a datasource (such as a datasource called "mytest" pointing to a MySQL database called "mytest") and adding a database driver (such as the ODBC driver allowing you to use a MySQL or other database). This FAQ discusses both aspects. This is also discussed in the BlueDragon User Guide.

    Auto-detection of ODBC Datasources

    BlueDragon automatically detects and loads into its administration console any ODBC datasources (such as a "northwind" datasource pointing at the SQL Server "Northwind" database) that you or others may have defined in your environment (whether by way of the Windows "ODBC Data Sources" control panel tool or the ColdFusion 5 Administrator). You can immediately use any such datasources that are already defined when BlueDragon initializes on startup (unless you need to add a username or password).

    Adding New ODBC Datasources

    If you add datasources using either of those other means after BlueDragon has started, you can simply press the "ODBC refresh" button provided on the datasources page of the BlueDragon administration console. This will refresh the list and detect new ODBC datasources. Again, you may need to add a username or password to the datasource definition before you can use it.

    Therefore, to add an MS Access or other ODBC datasource to BlueDragon, add it using the Windows "ODBC Data Sources" control panel tool. This can be accessed from "Administrative Tools" in Windows and above.

    Adding a UserName or Password

    The auto-detection mechanism cannot pick up any username or password defined in the ODBC datasource (entered in the Windows Datasource control panel tool). If you intend to rely on the username/password being provided in the datasource definition (rather than providing it on the CFQUERY), you must then re-enter those values in the BlueDragon datasource definition.

    Adding New ODBC Drivers

    If a driver for the database you wish to use isn't listed in that Windows ODBC Data Sources panel, you can add them by installing them yourself. Many databases will automatically add a new ODBC driver into the windows environment during installation of the database software. Otherwise, you may be able to obtain the database driver via the internet.

    For instructions on obtaining and installing the MySQL ODBC driver, see "How can I define a MySQL datasource? ".

    To obtain an ODBC driver for PostGreSQL, see sprers.eu It will be helpful to also review the instructions for installing and using the MySQL ODBC driver as many steps will be similar.

    For other databases, simply seek the appropriate ODBC driver from any source on the Internet, and follow the instructions above.

    BlueDragon
    Admin Console, Version differences
    How do I determine the release of BlueDragon I&#;m running?
    You can view your current engine revision in any of several ways:
    • it's displayed at the top of the debugging info displayed on each CFML page (assuming you've enabled it in the BD Admin console)
    • it's displayed in the Admin console itself, at the bottom of the general>runtime state page
    • it can be viewed by outputting the variable #sprers.eutversion# in a CFML page (yes, we use the same ColdFusion structure in the Server scope that ColdFusion uses to report this sort of info)
    BlueDragon
    Admin Console, Administration, General Info, Miscellaneous
    How do I determine what sprers.eu Admin Console pertains to a particular URL?
    sprers.eu has a separate Admin Console for each IIS web site and web application. This is an incredibly useful feature when you're running disparate applications on one machine because it allows you to configure them entirely separately and differently. It also means that you can trip yourself up if you configure something for one site when you mean to configure it for another. Sometimes it can be difficult to tell what sprers.eu Admin Console applies to a particular URL. Here's an easy way to tell: take the following CFML code, put it in a .cfm file in the directory of interest, and browse to it as you would the directory of interest (NOTE: code in an sprers.eu file may affect the normal processing of this file). It will give you a link to the sprers.eu Admin Console that applies to that URL. <cfif FindNoCase(".NET", sprers.eutlevel)> <cfobject type="java" action="create" name="sprers.eu" class="sprers.eune" > <cfset sprers.eukingDir = sprers.eukingDirectory().getAbsolutePath()> <cfset sprers.eudmin = "http"> <cfif FindNoCase("HTTPS", sprers.eu_Protocol)> <cfset sprers.eudmin = sprers.eudmin & "s"> </cfif> <cfset sprers.eudmin = sprers.eudmin & "://" & sprers.eu_Name> <cfif sprers.eu_Port NEQ 80> <cfset sprers.eudmin = sprers.eudmin & ":" & sprers.eu_Port> </cfif> <cfset sprers.eudmin = sprers.eudmin & sprers.eut_Path & "/bluedragon/sprers.eu" > </cfif> <html> <head> <title> My BlueDragon Admin Console </title> </head> <body> <cfif isDefined("sprers.eudmin")> <cfoutput> My BlueDragon Admin Console: <a href="#sprers.eudmin#">#sprers.eudmin#</a> </cfoutput> <cfelse> No implementation for your app server. </cfif> </body> </html>
    BlueDragon
    Admin Console, DataSource, JDBC
    I get a &#;General SQL Error&#; trying to use or verify a datasource. Why doesn&#;t it give a more useful error?
    We've noticed that with some JDBC drivers you'll often get a "General SQL Error" the first time you try to verify or use the datasource, and then a more specific error the second time. We think we know why this might be happening and are investigating a solution. In the mean time, if you get a "General SQL Error" when verifying or using a datasource, try verifying it a couple of times (in the admin console) to see if you get a better message the second time.
    BlueDragon
    Admin Console, Administration, Installation, Registration
    I want to input my BlueDragon license key. How do I do that?

    Normally this is done using a web browser. In that scenario, you would simply use the browser to access the BD admin pages, and input the key on the Licensing page.

    When a BD installation has no license key installed, it will run in Developer Mode. Note that this will occur if you use the BD admin pages to remove the key.

    When removing a key, you should always do so from a browser that is running on the SAME machine as BlueDragon. To understand why, read on

    When BD is running in Developer Mode, the BD admin pages can only be accessed from a browser that is running on the same machine where BD is installed.

    This means that it is possible to use a remote browser to remove a license key, but then that remote browser will be denied any further access to the BD admin pages. Remote browsers are denied such access for security reasons.

    In this case, here is how to enter your license key:

    • If using BD Server or BD Server JX:
      1. Stop BlueDragon (see below for more details on stopping/starting)
      2. Use a plain text editor to edit the "sprers.euties" file so that the value of the "sprers.eu" property is your license key. (The file is in the config folder of the BlueDragon installation directory.)
      3. Start BlueDragon
    • If using BD .NET or BD J2EE:
      1. Stop the BlueDragon web application (see below for more info on starting/stopping)
      2. Use a plain text editor to edit the sprers.eu file for your BD installation. (In a J2EE web application this file is located in the web app's WEB-INF\bluedragon directory. In a .NET implementation, the location depends on the installation choice: in a "single virtual directory" installation, it's that virtual directory's bluedragon\config directory. For the other .NET installation choices, the key goes in a special central sprers.eu in the sprers.eu\config directory.)

        In that file, you'd need to look under the "<server>" node, then under the "<system>" node. Under there is where you'd need to have a node that looks like this:

        So for example if your key is "ABC" then you'd have something like this in your sprers.eu file:

      3. Start the BlueDragon web application

      Stopping/Starting BlueDragon

      For more information on stopping and starting the BlueDragon web application as deployed on J2EE or .NET, see FAQ the respective BlueDragon manuals for those products.
    BlueDragon
    Admin Console
    I&#;m having trouble with a datasource in the .NET edition. I&#;ve added it, and verified it in the Admin console, yet when I try to use it in my CFML page, I get &#;The datasource xxx could not be found&#;. (Or I make other admin console changes and they don&#;t seem to take effect.)
    The problem is likely due to the fact that BlueDragon/.NET enables multiple admin consoles, one per web site or virtual directory (because .NET regards each web site or virtual directory as a different "application domain"). The problem is likely that you're adding/verifying the datasource in one admin console (such as that for the web site root), but running your CFML page within a virtual directory or another web site. You must add the datasource (and any admin configuration settings) in the admin console for the web site or virtual directory in which the code is running. For more info on finding the appropriate Admin Console, see FAQ

    If you're concerned because you want to add a datasource to all the admin consoles, and don't want to add/update it one-by-one, be aware that BlueDragon/.NET supports a notion of inherited global admin settings, where you edit a central sprers.eu with the desired shared settings, and all the web sites and virtual directories inherit from that. See section of the manual for more information.

    For more information, see the manual, "Deploying CFML on sprers.eu Servers", particularly sections and (the section numbers are as of the release of the docs).

    BlueDragon
    Admin Console, Session Tracking
    I&#;m running on sprers.eu, on IIS 6, and am frequently losing my sessions and/or am frequently being logged out of the BlueDragon Admin console. What gives?
    The problem is not a BlueDragon one but rather a common problem that trips up even sprers.eu developers. If you set up your IIS 6 application pool to enable the "web garden" (or setting the "max number of processes" for that pool to greater than 1), you are in effect creating a cluster of instances.

    A problem exists, however, if you enablel .NET sessions in BlueDragon's admin and also have left .NET's session management to its default of storing sessions in memory (inproc). The problem is that, now with web gardens enabled, if a user is moved by IIS and .NET from one process/instance to another, the session on the first won't exist on the second.

    The simple solution is to change your .NET session configuration from "inproc" to either "stateserver" or "sqlserver". Again, this is purely a .NET problem with a .NET solution. It was discussed at further length in a BlueDragon blog entry.

    BlueDragon
    Admin Console, General Info
    I&#;ve configured a Missing Template Handler in IIS7 for BlueDragon but I continue to get a Server Error, error page. How can I configure my custom Missing Template Handler to override the server&#;s custom page?
    In IIS Manager, choose Error Pages, located under the IIS configuration section. Highlight Status Code and choose "Edit Feature Settings" in the far right frame. If Custom Errors is selected, this indicates that the Server will provide the Custom Error page and not BlueDragon. You should choose Details and your Missing Template Handler will be served when a occurs.
    If this does not help, see FAQ
    BlueDragon
    Admin Console, Security
    I&#;ve lost my password to open the BlueDragon admin console. How can I recover from this?

    Stop BlueDragon. For BlueDragon JX, stop the BlueDragon JX service using the services control panel. For sprers.eu, stop IIS. For BlueDragon JEE, stop the JEE container.

    Edit your "sprers.eu" configuration file (whose location is discussed in FAQ ) and find the <server><system><password> entry. Delete whatever value you find there so that the <password> entry is empty:

    <server> <system> <password></password> </system> </server>

    Restart BlueDragon. For BlueDragon JX, start the BlueDragon JX service using the services control panel. For sprers.eu, start IIS. For BlueDragon JEE, start the JEE container.

    Since there's no password defined, you'll be able to access the BD admin console directly without logging in. Immediately set a new password.

    BlueDragon
    Admin Console, Security
    Where do I find the cfml pages for the BlueDragon Admin console?
    There are no BlueDragon Admin cfml pages. The pages are stored in sprers.eu located in the \config folder of your BlueDragon Installation directory. If you are running sprers.eu, the file is named adminbda and adminbda. Your version of .NET determines which sprers.eu is being used.
    BlueDragon
    Admin Console, Installation
    Where do I place files in support of CFXs?
    In the Java versions of BlueDragon, the Java class file supporting the CFX must be either an unbundled .class file or bundled within a .jar archive. For BlueDragon Server or Server JX, the class files can be placed in the
    BlueDragon
    Admin Console, Installation
    Where is the sprers.eu file located?
    The location of the sprers.eu file, which holds changes made in the BlueDragon admin console, depends on the edition of BlueDragon being used.

    In the Server or Server JX editions, it's in the [bluedragonroot]/config/ directory where [bluedragonroot] is the location where BlueDragon was installed (such as C:\BlueDragon_Server_JX_62, or /usr/local/NewAtlanta/BlueDragon).

    In the J2EE edition, it's in the WEB-INF/bluedragon/ directory of the BlueDragon web application or WAR file.

    In the .NET edition, the location depends on the kind of installation performed and whether multiple applications (web sites, virtual directories, or directories defined in IIS to be an application) have been defined. See the documentation, Deploying CFML on sprers.eu Servers, in the section "sprers.eu Configuration File Location", for more information.

    BlueDragon
    Admin Console, Administration, Web Application
    Why aren&#;t my session being shared between CFML and sprers.eu pages?
    The simplest reason would be if you have not enabled ".net sessions" in the BlueDragon admin console's "application>settings" page. Further, be aware that your code may be running in a virtual directory or web site where its own BlueDragon Admin Console settings differ from the global admin console. Use http://yourdomain/yourvd/bluedragon/sprers.eu to look at the Admin Console for the virtual directory. For more info on finding the appropriate Admin Console, see FAQ

    Another possible issue could be that your CFML code is using a named application (CFAPPLICATION NAME="xx" SESSIONMANAGEMENT="yes"), in which case you must write code in the sprers.eu page that properly accounts for the use of such a named application (by referring to it as a hashtable in sprers.eu).

    Finally, a more subtle explanation could be that CFML and sprers.eu files are being processed by different versions of the .NET framework. For instance, if CFM files are set in the IIS admin console to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, but the ASPX files are set to be mapped to C:\WINDOWS\sprers.eu\Framework\v\aspnet_sprers.eu, then these different versions will NOT share session variables.

    Again, if your code is running in a virtual directory or its own web site, the configuration of these mappings may be set for that level, so be sure to check carefully.

    BlueDragon
    Admin Console, Known Limitations and Workarounds
    Why can&#;t I register my Java CFX tags in BlueDragon .NET?
    The .NET Framework does not support Java classes. Any Java programs must be recompiled using Visual J# (which is part of Visual sprers.eu). As such, BlueDragon/.NET does not support use of Java CFXs without their being recompiled in .NET (using the sprers.eu that is provided with sprers.eu).

    See the CFX directory where BlueDragon/.NET is installed for more information on how to compile a CFX (Java or C++) for use with BlueDragon/.NET.

    Also, see FAQ for more information on using C++ CFXs in .NET.

    If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Also, the .NET Framework libraries may offer an alternative solution to the need.

    If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may be able to work with the vendor to help them recompile the CFX for use with .NET. Contact us, or have them do so, at this account.

    BlueDragon
    Admin Console, Administration, Known Limitations and Workarounds
    Why do the admin pages not display?
    On some Linux systems (especially Debian and SuSE), installations of BlueDragon Server and Server JX may have problems with the display of the BlueDragon Administration Pages (e.g. http://localhost/bluedragon/sprers.eu). This problem is caused by failures to decrypt the admin page CFML templates. The primary symptom of the problem is the return of a page in place of the admin page which contains a stack trace caused by a "sprers.eualError: Unexpected exception in IJCE_sprers.euerTargets()". Also a number of "Netscape security model is no longer supported." messages will appear in "<BD-root>/logs/BlueDragon_sprers.eu".

    Replacement of the installed version of "<BD-root>/jre/lib/ext/cryptixjar" with this patched version from the BlueDragon FTP site, will correct the problem.

    BlueDragon
    Admin Console, Supported Features
    Why don&#;t I see any output trace information when using CFTRACE?
    One of the new features in BlueDragon is support for CFTRACE, as introduced in CFMX. As in CFMX, it can be used such as in <cftrace text="sometext"> which can cause a line such as this to be written to the debugging output:

    [CFTRACE ] [[pathtofile] @ line: 1] - sometext

    This output will of course be shown only if debugging output is enabled in the BlueDragon admin console. But more than that, there is a specific option in the the admin console (debugging>settings page) labelled "trace points", which must also be checked. If "trace points" is not enabled, CFTRACE tags are ignored.

    For those new to CFTRACE, note as well that output can be written to the page itself at the point of the CFTRACE (rather than in the debugging output) by adding INLINE="yes" as an attribute of the CFTRACE. This option also still requires that the debugging output (and trace points) options be enabled.

    Note that this means that CFTRACE can be left in a page even in production, since they create no output if debugging is disabled.

    Administration
    BlueDragon
    Administration
    Can I move the BlueDragon for J2EE Servers work directory outside my application&#;s open directory or EAR/WAR?
    Yes. In order to do this, edit the <param-value> sub-element of the <init-param> element whose <param-name> sub-element's value is BLUEDRAGON_WORKING_DIRECTORY to have an absolute path like the following: <init-param> <param-name>BLUEDRAGON_WORKING_DIRECTORY</param-name> <param-value>C:\bluedragon\work</param-value> </init-param> IMPORTANT NOTE: you must not use the same work directory for more than one Bluedragon for J2EE Servers application. If you have more than one BlueDragon for J2EE Servers application, consider using each application's context path as part of the path to its working directory.

    NOTE: in addition to BlueDragon for J2EE Servers, this FAQ is applicable to BlueDragon, BEA Weblogic Edition.

    Keywords: log, logs, work directory, working directory
    BlueDragon
    Administration, Profiling Servlets
    Can I use FusionReactor with BlueDragon?
    Yes.
    It is possible to use FusionReactor [FR] with BlueDragon for J2EE Application Servers. Follow the Manual Installation steps given in the FR Installation Guide.

    It is also possible to use FR with BlueDragon JX or higher (not older versions of BDJX). Detailed instructions for that combination follow:
    At the time of this writing (August ), the FR Installation Guide is available from the FusionReactor Website.
    From there click "FusionReactor" (along the top) and then "Online Support" (lower right). Then click the "Documentation" link under the "FREE Online Support" heading. That is where we found the link to the FR Installation Guide

    The last section in that guide is entitled "Manually installing FusionReactor". It contains a subsection entitled "Overview" which you should read, but don't perform any steps yet. There are 2 other subsections that deal with Manually installing FR (one for Windows and one for Unix). Those "manual installation" subsections give the step-by-step procedure for "hooking" FR into a CFML-Enabled Servlet/JSP Engine.
    If you are using BDJX then you should follow those steps as they are given but with the following exceptions/clarifications:
    1. In step #4, the "default web descriptor" for BDJX is: You'll copy the filter definition from the sprers.eu file into that default web descriptor as follows:
      1. Place your cursor at the start of the last line in that file (just before ).
      2. Paste the filter definition right there.
      Ensure that the path to the sprers.eu file is correct.
    2. In step #5, look over the entire contents of the sprers.eu file and make sure that all references to the FR installation folder are correct (they must all match where you actually unpacked the FR archive)
    3. In step #6, copy the sprers.eu file to the BDJX lib\ext folder.
    4. In step #7, you must edit the OPTIONS line in sprers.eu file so that line now reads (all on one line):

      OR you could optionally NOT edit the start script at all but rather copy the contents of the folder into a folder that is already listed in the value of the JVM System property (navigate to on the BDJX Admin UI to see that value).
    5. In our testing we found that FR is very picky about the syntax of the sprers.eu file. For example, we found that absolute paths needed to use forward slashes / rather than backslashes \. For example:

      And Note that the full colon in the sample above is correctly escaped with a backslash. This is necessary due to the fact that FR reads the sprers.eu file in as a Java Properties file. In our testing, we found that when sprers.eu contained file path syntax errors FR would output the follow sort of messages to the BlueDragon Server sprers.eu file:


    NOTE:
    FusionReactor does not work with any other edition of BlueDragon, including BlueDragon .NET Standard and BlueDragon .NET Enterprise.
    BlueDragon
    Administration, Profiling Servlets
    Can I use SeeFusion with BlueDragon?
    It should be possible to use SeeFusion with BlueDragon for J2EE Application Servers and BlueDragon, BEA WebLogic Edition. However, SeeFusion does not work with any other edition of BlueDragon, including BlueDragon Server, BlueDragon Server JX, BlueDragon .NET Standard and BlueDragon .NET Enterrprise.
    BlueDragon
    Administration, Supported Features
    Does BlueDragon support the sprers.eueFactory in CFMX?
    There is an undocumented API for CFMX which provides programmatic access to the Administration of the server, including listing and updating such information as datasources, mappings, schedule tasks, etc. We appreciate that developers want such a solution in BlueDragon.

    Still, this ServiceFactory is not only undocumented but has been deprecated in CFMX 7 in favor of a new CFC-based api, we will not be offering any implementation of these identical undocumented ServiceFactory methods.

    We had already begun creating a CFC to provide programmatic Admin access even before the CFMX 7 beta began, and we are still debating whether to proceed with and release that, or rewrite to follow CFMX 7's CFC component and method names After resolving this and related matters, we will make the CFC available as soon as possible.

    In the meantime, if BlueDragon VAR partners or other customers have a desparate need for this functionality, we have an early version of our own admin api CFC available. Contact [email protected] if interested.

    BlueDragon
    Administration
    Does BlueDragon work with Windows XP SP2?
    Yes, it does. It's worth noting, however, that among the new security features in XP SP 2 is one that--if set--may make it seem that BlueDragon does not work.

    In the new Windows Firewall feature (Start>Control Panel>Security Center>Manage Configuration Settings for Windows Firewall), be sure that the option "Don't Allow Exceptions" is not checked. If it it is checked, then the BlueDragon port will be blocked "silently" and BlueDragon won't work.

    BlueDragon
    Administration
    How can I determine if my .NET web application is restarting too often?
    If you find that requests for any page in a .NET web app (whether aspx or cfm) seem to be running slowly for every or many requests, one thing to determine is whether the "app domain" for the sprers.eu pages might be unloading due to some problem. (.NET defines each web site and each virtual directory as a web app, or technically an "application domain".)

    There are various reasons that an application may be restarted, as discussed in the BlueDragon manual, "Deploying CFML on sprers.eu Servers", in the section "Automatic Stopping/Restarting of .NET Web Applications".

    If some problem of unexpected behavior is causing .NET to unload the web app, then any subsequent request for a page after it's been unloaded will spend time trying to restart the app domain. This could cause a drag on execution of requests.

    Fortunately, .NET tracks restarts by way of statistics that can be viewed with Windows Performance Monitor start. You can observe whether restarts are occruring by viewing the PerfMon tool. Open Performance (from Administrative Tools), then switch to "report view" (ctrl+r) (to see numbers, not charts), then "add" (ctrl+i) the appropriate counter. To get that counter, select the computer to be monitored, then for "performance object", choose "sprers.eu v" (assuming you are using the .Net framework), and choose "application restarts" and "add".

    This will add a counter showing how often all or selected app domains restart. If it's a large number, then you have experienced many restarts since the server itself was started. You could run a small sample application (also provided in the documentation) to force an unload of the app domain, and again you should see the counter go up. (See the related section on the negative impact of application restarts on sessions.)

    Note that you can also use PerfMon to set up alerts and logs instead to "watch" any of these counters.

    BlueDragon
    Administration, General Info, Installation
    How do I start and stop BlueDragon Server?
    BlueDragon Server and Server JX are just two of four editions of BlueDragon. As standalone editions, they run as a service or daemon that can be stopped/started, as discussed in the FAQ.

    If you're a Windows user, you can restart BlueDragon through the Services Control Panel. Or, you can use the sprers.eu and sprers.eu found in the installation directory's bin folder.

    If you're a Linux or MacOsX user, you will find a sprers.eu and sprers.eu in the BlueDragon installation folder's bin directory. (Use ./sprers.eu to run the stop script, for instance.)

    For the J2EE edition, you can restart the BlueDragon WebApp as supported by whatever J2EE or servlet engine you're running. For the .NET edition, see the manual, "Deploying CFML on sprers.eu Servers" for more information on starting/stopping a BlueDragon .NET application.

    BlueDragon
    Administration, Web Server Support
    How do I switch my .NET framework betweem .NET and .NET ?

    Assuming you have both frameworks installed (and rebooted the machine afterwards), then from the IIS Manager you would open the Properties dialog for the IIS "component" (i.e. "level") you wish to switch. When I say "component" or "level" I'm referring to the fact that inside the IIS manager, it is possible to open the Properties dialog for 3 different "levels".

    • For ALL websites the node labeled "Web Sites" (whis is global for all sites)
    • The node for an indididual website
    • Or the properties for an individual Virtual Directory (VD) within a specific website

    How you installed BD .NET (global in the GAC, for a specific website, or for a specific VD) will decide for which "level" you should open the Properties Dialog inside the IIS manager.

    Once you have the properties dialog up, go to the tab labeled "sprers.eu" and select (from the drop-down list) the .NET version you want that "level" to use. Apply the change.
    All of this so far is just .NET "stuff" and really has nothing to do with BlueDragon.

    If using BlueDragon .NET then you could immediately go to the tab named "Home Directory" (or "Virtual Directory" if your "level" is a VD) on that same Properties dialog, and click the "Configuration" button and verify that your .cfm, .cfml, and .cfc mappings there are pointing to the correct version of the .NET framework.
    Note that BD will not support .NET , it will only support .NET So BD won't support this sort of framework version "switching".
    Also note that if you installed .NET *after* BD .NET was already installed, then certain BD-related components needed to support .NET were not installed (since .NET was not present at BD install time). So you'd need to uninstall BD and then reinstall it with .NET being present on the machine before BD could run on .NET

    BlueDragon
    Administration, Installation, Security
    How does IIS determine which account sprers.eu requests run under?
    The account that sprers.eu requests run under is determined by the following algorithm:

    1) If sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests.

    2) If sprers.eu doesn't contain an <identity> element and sprers.eu contains an <identity> element with the attribute impersonate set to "true" then sprers.eu will run under the username specified in the <identity> element. If an empty string is specified for the username then sprers.eu will run under the authenticated user for authenticated requests and under the anonymous user for unauthenticated requests.

    3) If impersonation is disabled then:

    • with IIS 5 and earlier, sprers.eu will run under the user specified in the <processModel> element of sprers.eu The <processModel> element cannot appear in sprers.eu
    • with IIS 6, sprers.eu will run under the application pool identity of the application pool it is configured to run under.
    The following sprers.eu code can be used to determine which user sprers.eu requests are running under: <%@ Page Language="vb" %> <html> <head> <title>Simple sprers.eu Page</title> <script runat="server"> Sub SayHello() sprers.eu( "Hello, " & sprers.eurent().Name ) End Sub </script> </head> <body> <% SayHello %> </body> </html>
    BlueDragon
    Administration, General Info
    What is the difference between managed CFX tags and unmanaged CFX tags in BlueDragon .NET?
    BlueDragon/.NET does not support unmanaged CFX tags. An unmanaged CFX tag is a C++ CFX compiled with a standard C++ compiler (in other words, have not been compiled to .NET). C++ CFXs can be recompiled to be "managed" using Visual sprers.eu (or more specifically, managed C++).

    See the CFX directory where BlueDragon/.Net is installed for more information on how to compile a CFX (Java or C++) for use with BlueDragon/.NET.

    Also, see FAQ for more information on using Java CFXs in .NET.

    If you have a CFX that you need to run, but you do not have the source code to recompile it, consider that it may be possible that you can find that CFML has evolved (or a BlueDragon enhancement has been made) to offer a workaround. Also, the .NET Framework libraries may offer an alternative solution to the need.

    If there is no choice but to recompile the CFX, and the problem is that you do not own the source for the CFX, we may be able to work with the vendor to help them recompile the CFX for use with .NET. Contact us, or have them do so, at this account.

    BlueDragon
    Administration
    When I try to run a page using sprers.eu, I get an error stating that &#;The resource cannot be found&#; and &#;The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. &#; But the web site is properly defined and points to the proper docroot. What gives?
    The .NET framework is quite sensitive to the web site doroot being entered in IIS *without* a trailing slash. If you've defined the docroot to be c:\inetpub\wwwroot\, change it to just c:\inetpub\wwwroot.
    BlueDragon
    Administration, General Info
    Why can&#;t I find a \config folder after installing sprers.eu?
    The config folder for sprers.eu is not created until the first request. Try requesting sprers.eu
    BlueDragon
    Administration, Installation, Known Limitations and Workarounds, Web Server Support
    Why didn&#;t BlueDragon find the IIS installation?
    This a known problem for versions older than BlueDragon in which BlueDragon does not find the IIS installation because of a missing "Scripts" virtual directory and associated Windows Registry entry. This will be fixed in an upcoming release of BlueDragon This FAQ was written in

    To workaround the problem, create a virtual directory named "Scripts" in the IIS configuration. This virtual directory typically points to the physical directory . After creating "Scripts", restart IIS. The restart is ABSOLUTELY NECESSARY since it creates a Windows Registry entry that BlueDragon requires. After the restart, restart or reinstall BlueDragon and it should recognize the IIS installation.

    BlueDragon
    Administration, Installation, Known Limitations and Workarounds, Web Server Support
    Why doesn&#;t BlueDragon find my Apache installation?
    The solution to this challenge depends on the edition of BlueDragon that you're running.

    First, BlueDragon Server (free edition) only supports Apache on Linux. If you're running it on Windows, you will not be presented the opportunity to integrate with Apache, even if you have it installed.

    If you're running the BlueDragon Server JX edition, consider the following:

    In recent Apache for Windows releases (e.g. ), the installer allows a selection between installation for a specific user or as a system service. BlueDragon currently has some difficulty detecting this "specific user"/non-system installation and therefore does not allow the BlueDragon adapter to be installed.

    However if the user used to run BlueDragon is changed to the same as used for Apache, BlueDragon will detect Apache and allow adapter installation. This requires that both Apache and BlueDragon be installed first, then the BlueDragon user changed to match that of Apache.

    This is done using the following steps.

    1. From the Services control panel, select the "BlueDragon Server" (or "BlueDragon Server JX") service and then the properties icon.
    2. On the properties panel select the "Log On" tab.
    3. Next change the "Log on as:" setting from "Local System account" to "This account" and enter the account name that matches the account used by Apache.
    4. After "Apply"ing the changes, restart the BlueDragon service.
    5. An entry for the Apache server will now appear on the "web server adapter" page of the BlueDragon Administration Console and configuration can be completed.

    Finally, if you continue to have challenges integrating with Apache, please see other FAQ entries that refer to Apache.

    BlueDragon
    Administration, Installation, Known Limitations and Workarounds, Web Server Support
    Why doesn&#;t BlueDragon operate on the virtual hosts defined in IIS?
    Symptoms of this occuring are that a request for a ".cfm" page will return the raw data which activates the browser "Save As" or "Enter file to save to" or "File Download" popup. These same symptoms may also occur for requests with the other extensions supported by BlueDragon including ".cfml", ".cfc", and ".jsp".

    Prior to and including BlueDragon Server , the "Scripts" virtual directory was required to be defined for each virtual host within IIS. If not defined, the installed BlueDragon filter was not recognized and therefore ".cfm" pages not processed by BlueDragon.

    After and including BlueDragon Server , this problem is most likely the result of the removal or replacement of the "Application Mapping" for ".cfm" in the virtual host definition. BlueDragon Server installs "application mappings" to ONLY the Master Properties of an IIS installation. These master properties may be overridden by "application mappings" defined for the specific virtual host.

    DataSource
    BlueDragon
    DataSource, Web Services
    I&#;m trying to set up an sprers.eu page to return a Datatable to a CFML page as a web service. I get an error in the ASMX page. What&#;s wrong?
    If you receive any of the following errors .NET errors while trying to create/process a .NET web service (ASMX file), this FAQ applies to you:
    • sprers.euportedException: Cannot serialize member sprers.eu of type sprers.eu because it is an interface.
    • sprers.eulation cannot be serialized because it does not have a default public constructor.
    • Internal Server Error. Unable to request "http://
    The problem, of course, is not a CFML (or BlueDragon) error, since it's happening in the ASMX page (the sprers.eu web service page). It's due to an error in .NET where datatables cannot be returned in web service calls. Since we show examples of passing datatables between CFML and sprers.eu, this problem may become apparentto those doing experimentation with sprers.eu web services.

    The good news is that there is a Microsoft Technote explaining the problem. The bad news, again, is that you cannot pass a .NET datatable via a web service, because they are not themselves serializable. You can, however, return a dataset (containing the datatable). The technote shows very clear examples of how to solve the problem.

    Their solution will indeed work. You just need to know how to grab a table out of the dataset, in order to process that in CFML.

    If you use the example at the technote page, you could use the following CFML to obtain the "Authors" datatable within CFML (and of course, this would work for any code where the dataset contains a table, if you just name the proper table):

    <cfset table=sprers.eu_tables().get_Item("Authors")>
    <cfoutput query="table">

    BlueDragon
    DataSource, Known Limitations and Workarounds
    Why can&#;t BlueDragon detect my Access odbc datasource on my bit machine?
    Microsoft has not made a bit odbc driver for Access so you can only configure it using the bit odbc manager. If BlueDragon is launched as a bit app then it won't be able to see the bit datasources.
    If you have a bit machine and you must use an Access ODBC datasource, the only solution is to install a bit Windows OS on your bit machine and then run BlueDragon's bit installer.
    BlueDragon
    DataSource
    Why can&#;t I update an Access database with BlueDragon for the Microsoft .NET Framework?
    When trying to update an Access database using BlueDragon/.NET, you may receive the error: "Operation must use an updateable query". This is a problem not caused by BlueDragon but instead the .NET framework. Indeed, the problem is discussed in the Microsoft Knowledge Base article, sprers.eu?scid=kb;en-us;

    The simplest solution may be to edit the security properties for the MDB file (using Windows Explorer, right-click on the MDB file, choose properties, then the "security" tab). Add the sprers.eu acccount (or "everyone") as a user (choose "add", then "advanced", then "find now", and select "ASPNET" or "everyone"), and give that user "modify" and "write" permissions.

    You could also set this security not just at the file (mdb) level but at the directory level, for the directory holding this file (or other files) that you want to edit in a .NET web application (such as BlueDragon/.NET).

    If you have opened the file in a currently running instance of BlueDragon or ColdFusion (or Access) before making that change, you'll see that the directory where the MDB is stored will now have an LDB file of the same name. In this case, the change you've made won't take effect until you restart whatever app(s) had opened the file (which will release this LDB lock file and make it disappear). In the case of BlueDragon/.NET, you'd want to restart IIS (or restart the web application, as discussed in the BlueDragon/.NET documentation) to make that LDB file go away.

    Once the file is gone, the change to security will take effect and the next refresh of the page doing the database update should work as expected.

    BlueDragon
    DataSource, Security
    With sprers.eu, can a SQL Server datasource be configured to use a trusted connection (Windows Authentication)?
    Yes this is possible but does require some configuration, due to security restrictions in .NET. Also, the changes required depend on whether IIS and SQL Server are running on the same machine. (You can also work-around this temporarily, which may make sense in some cases, as discussed at the end of this FAQ.)

    If IIS and SQL Server are running on the same machine then follow these steps:

    - determine which account sprers.eu requests run under as described in FAQ #
    - make sure this user has permission to access the SQL Server databases
    - when configuring the datasource be sure to set the Server Name field to "" and the Connection String field to "trusted_connection=true"

    If IIS and SQL Server are running on different machines then you will need to use impersonation in IIS in order to use a domain account that can be seen by SQL Server. Refer to the following Microsoft knowledge base article for more information on impersonation:

    sprers.eu

    Be sure also to select an account that would have permissions on the server running IIS to write to the files that the user running .NET would have had, such as the .NET framework temporary directory location (which might be C:\WINDOWS\sprers.eu\Framework\v\Temporary sprers.eu Files), and the C:\sprers.eu directory. You could consider looking at what what groups have permissions to those directories and assign the selected user to that group.

    Once you have IIS configured for impersonation then follow these steps:

    - make sure the domain account used for impersonation has permission to access the SQL Server databases
    - when configuring the datasource be sure to set the Connection String field to "trusted_connection=true"

    Of course, keep in mind that if you're just getting started with configuring BlueDragon in a test environment and want to get things running as quickly as possible, you could also just enter the username and password rather than rely on the Trusted Connection feature (and go change that later before moving to production).

    Debugging
    BlueDragon
    Debugging
    sprers.eu is not performing as fast as I expected. What are some things I can do to debug this?
    1. The first thing you need to do is turn on debugging in Bluedragon Admin UI. Choose debug settings and check Debug Output in the first table. Then, choose Page Execution times in the second table. Can the slow-down be isolated to a particular page or function?
    2. If you can isolate the problem to a specific page, try using cftimer tag to narrow down the lag to a specific area in your code.
    3. Are there datasource connection issues? Look in Bluedragon Admin UI under Data & Search->Runtime state. Look at the value for Wait Connections for each DataSource connection pool. If Wait Connections is anything above zero, you need to increase your Max Connections value for that datasource. It is configurable in BlueDragon Admin UI-DataSources->Choose that Datasource and increase the Max Connections value.
    4. Look in sprers.eu located in your
    BlueDragon
    Debugging, Exceptions, General Info
    Can I use FusionDebug with BlueDragon?
    No, FusionDebug does not work with BlueDragon.
    BlueDragon
    Debugging
    How can I troubleshoot a memory leak involving BlueDragon .NET?
    • Startup the Windows Task Manager and go to the "Processes" tab. Then check the checkbox at the bottom labeled "Show processes from all users". Then click the column header for the column named "Name" (to sort the processes alphabetically by name). Then look for processes named "sprers.eu" At the top of the Task Manager window is a menu from which you may navigate as follows:

      From there you can customize the list of columns to include a column for the PID.
      Note the PID of your sprers.eu process.
      If you have more than 1 w3wp process running you may need to turn off the App Pool that BD .NET is using and take note of which w3wp PIDs remain. Then turn it back on and take note of the newly listed sprers.eu PID (that would be the one in which sprers.eu is running).
      Be sure to configure that App Pool to never recycle itself.
      Then periodically (every day or so) take note of the memory usage of that PID.
      We've done this before for 8 consecutive days in a non-memory-leaking setup. Data collected during the first 7 days suggested an upward trend, but data on the 8th day confirmed that there was no leak. So you may need to watch this across many days to get the truth for your own system. It just depends on how often the .NET garbage collector runs on your system. The highest value we saw in our trivial test was 86, Kilobytes which is tiny and well within acceptable memory usage for an IIS Application Pool
    • IF you can confirm that the memory *trend* of your PID across many days and or weeks is always up (and definitely not down) then please use this information to obtain a memory dump of the running Application Pool process (use the PID) and then please send us that dump.
      We are happy to analyze it here.

      Please know that if the PID memory usage trend is *not* upwards then analyzing a dump would not be useful. The process would need to be in a clear state of "heading towards OutOfMemory" so that the problem could be clearly picked out from the dump. In fact the more "out of balance" the process is the better it would be for analysis purposes.
    • Another tool that could be used to gather data about a running Application Pool process (sprers.eu) is the Microsoft Debug Diagnostic Tool v It can be used to both generate and analyze a dump of most any Windows process.
    BlueDragon
    Debugging
    I&#;m running BD .NET and seeing a &#;generic&#; .NET error response in my browser that&#;s not too helpful. What&#;s wrong?

    One example of such a response is:



    You can configure your .NET webapp (BD-enabled or not) to possibly give a more useful error message by adding:

    to the sprers.eu file of your .NET webapp, or to the sprers.eu file.

    NOTE:
    BD (all configurations, not just .NET) never catches "Throwable" even if your CFM pages contains a <cfcatch> whose . In that scenario, BD catches BD-defined Exceptions, and sprers.eueException.
    That means that if the Exception or Error is some other one such as a JVM-specific one (or a .NET framework-specific one), or one that's specific to certain operations such as an XML Parsing Exception, or perhaps one that's thrown by the "Container" such as the .NET Framework or Sun's JVM then cfcatch won't catch it.
    The reason is because BD makes calls to the APIs provided by either .NET or the JVM, and those calls may throw errors/exceptions that don't relate to the CF world. In that case, it's not caught by BD, it bubbles up to the "Container" inside which BD runs.
    At that point it's out of BD's hands.
    This is why you'd see a "generic" .NET error (or JVM error) in the first place and also why you'd want to turn customErrors off in the .NET webapp so that the .NET framework won't hide the true problem from you.

    BlueDragon
    Debugging, General Info
    My memory usage is running very high and escalating in BD JX. This is causing my performance to lag. What should I look for?
    This could be caused by a very large number of cached queries. Your cache count may be at the max, which by default is In BlueDragon Admin Console-Application->Caching you will see a value for Queries in Cache. If this value is at its maximum, you should either edit your sprers.eu to increase this value, or you should consider whether your application needs debugging to reduce the number of queries you are caching. If you choose to increase the value of <cachecount>, simply add this element under the <cfquery> element and try changing the size to <cachecount></cachecount>
    In BlueDragon 7.X versions, you can edit your cache size in BlueDragon Admin ->Application ->Caching. No manual edits to the sprers.eu are required for newer version of BlueDragon.
    BlueDragon, ServletExec
    Debugging
    What is DBMON and how do I use it ?
    DBMON stands for Debug Monitor.
    New Atlanta does not make DBMON.
    DBMON is a debugging tool created by Microsoft which has been bundled with Windows installations of ServletExec. It captures and displays program output from programs that are written to do this. Both ServletExec ISAPI and ServletExec NSAPI on Windows are written to do this, they will send any sprers.eun() output to both DBMON and sprers.eu
    If you are running SE AS (out-of-process version of SE) then you'll find that your output emitted by your Servlets and JSPs is not captured by DBMON. This is because DBMON is a native (non-Java) program, and it cannot capture output that comes from a java program. Any output that you see in DBMON must have come from a native program. The only time that you would ever get to see your output emitted by your Servlets and JSPs, captured in DBMON is if you were running a version of ServletExec which runs in-process with the web server (ISAPI or NSAPI), because then the SE Java code can make a native callback to tell the native webserver to output the message to DBMON.
    DBMON is discussed in the "Developing Servlets" chapter of the ServletExec User Guide (for example, in the SE User Guide this is section ). If you have program output in DBMON that you need to copy to your clipboard, here is how you do this:
    1. In the upper-left corner of the DBMON window, left-click the C:\ icon once.
    2. From the pulldown menu choose Edit - Mark
    3. Now highlight the DBMON output you wish to put on your clipboard
    4. Hit Enter on your keyboard to place the text on your clipboard
    5. Paste the captured output to an email or text file or wherever you wish.

    Note that DBMON will not show you anything if you are accessing the machine remotely via terminal services or possibly other remote access software. This is a limitation of DBMON. In this case you would need to examine sprers.eu to see the messages. sprers.eu has the added benefit of timestamps for each entry, DBMON output does not provide timestamps.

    Another debugging tool which works similar to DBMON but also works when run remotely is DebugView. DebugView is freely downloadable from:
    sprers.eu

    If the above link does not lead you to the DebugView download page, then please be aware that Microsoft appears to be the new owner of DebugView. You might find it here.

    Note that in our testing with remote use of DebugView we found that we had to enable Global Win32 from the capture menu in order to see any generated output remotely and we found that we had to do that twice before that setting would actually "stick".
    BlueDragon
    Debugging, Exceptions
    When I run a .NET page, I get a .NET &#;Configuration Error&#; stating that &#;It is an error to use a section registered as allowDefinition=&#;MachineToApplication&#; beyond application level.&#; What&#;s up with that?
    This error generally indicates that you've got code in a directory that's not been defined to .NET (by way of IIS) to be an "application". Some xml directives in the .NET sprers.eu file cannot be run in a simple directory, and can only be executed in an "application" root (whether a web site root, a virtual directory root, or an application declared in IIS to be an "application").

    To solve this problem, declare the directory to be an application. This notion of declaring a directory is discussed further in the manual, Deploying CFML on sprers.eu.

    BlueDragon, JTurbo, ServletExec
    Debugging, General Info, Installation
    Where are the Interest List Archives for ServletExec, JTurbo, and/or BlueDragon?
    It is no longer possible to post new messages to the Interest List Archives for any of New Atlanta's products as they have been replaced with the New Atlanta Product Forums. However, it is is still possible to search the Interest List archives for answers to previously asked questions using the links below:
    Each of the Interest List archives represent years of details technical information and are an extremely valuable tool in solving various issues that you may encounter.
    Exceptions
    BlueDragon
    Exceptions, General Info, Installation
    I get NoClassDef and other errors trying to process images on BlueDragon Server or Server JX on Linux systems. What&#;s wrong?
    The problem generally is related to running the Linux system in "headless" mode. See the BlueDragon Server and Server JX Installation Guide, and the section "Graphics Rendering Operations on a Headless Linux System" for more information and a possible solution.
    BlueDragon
    Exceptions, Supported Features, System Requirements
    I&#;m having problems using CFMAIL in the BlueDragon/J2EE edition on some servers, such as Tomcat 5. What does &#;NoClassDefFoundError&#; mean?
    If you attempt to use CFMAIL when deployed on Tomcat 5 (and Jetty, it seems), it will fail with a NoClassDefFoundError. The problem is that Tomcat 5 simply doesn't include the necessary javamail (and "beans activation framework") libraries that CFMAIL relies on.

    You can obtain these libraries (jars) from sprers.eu, then move the needed sprers.eu and sprers.eu files into the the WEB-INF/lib directory a your web application (and restart your web application). If you want to solve the problem for all web applications, you need to move it to the appropriate place for the J2EE server/servlet engine you are using.

    For Tomcat 5, you can place it into either the $CATALINA_BASE/shared/lib or the jre/lib/ext folder of the JDK location being used by Tomcat (or other J2EE servers).

    (Appendix I of the "Deploying CFML on J2EE Servers" manual in the documentation set incorrectly states that the sprers.eu and sprers.eu can be found in the WEB-INF/opt directory of the BlueDragon web app. That is not true.)

    You can also find more on these issues at:

    BlueDragon
    Exceptions, General Info, Known Limitations and Workarounds, Miscellaneous
    What sort of configuration edits are needed with sprers.eu to allow large uploads with IIS7?
    If you are trying to upload a large file using sprers.eu on IIS7, you may get an error:

    HTTP Error - Not Found
    The request filtering module is configured to deny a request that exceeds the request content length.

    In sprers.eu, find the requestfiltering element and add:

    <requestFiltering>
    <requestLimits maxAllowedContentLength="" />

    Note that the value for maxAllowedContentLength is in bytes.
    After you get past this error, you may then get a different http error: Maximum request length exceeded.
    You should open sprers.eu and add:
    <httpRuntime maxRequestLength="" />
    as described in BlueDragon FAQ This value is in kilobytes.
    BlueDragon
    Exceptions, General Info
    When I try to use a cfchart tag in IIS, I can&#;t get the image to display. How do I resolve this?
    First, check your extension mappings in IIS and make sure that .cfchart is correctly mapped to \BlueDragon installation\bin\isapi\BlueDragon_sprers.eu Extensions are mapped in IIS Management\Web Site Properties\Home Directory tab\Configuration button.
    Second, highlight .cfchart extension and choose the Edit button. Make sure to UNcheck the option 'Check that File Exists'.
    General Info
    BlueDragon
    General Info
    Are there any hosting providers offering BlueDragon?
    Yes, there are now several companies offering BlueDragon hosting. Visit our TrueBlue Partner Directory for a list of our hosting partners. If you are interested in becoming a hosting partner (or want to recommend it to your hosting provider), we offer a generous hosting partner program.
    BlueDragon
    General Info, Installation, Web Server Support
    BlueDragon is not working on my Windows machine. I get &#;The system cannot find the path specified&#; error. Would a previous installation of CFMX be a factor in this problem?

    The CFMX installer creates a "WildCard Application Mapping" in IIS 6 (and even leaves it there after an uninstall of CFMX!).
    This effectively blocks requests from ever being passed to BlueDragon.
    IIS continues to pass requests over to a CFMX installation that's not there anymore (yuck!)
    Solution:
    Look in your IIS management and remove any wildcard application mappings to ColdFusion.

    Here is one way to make that configuration change (with IIS 6 for example):

    1. Right-click on "My Computer" and choose "manage"
    2. In the lower-left corner, expand the "Services and Applications" node
    3. Expand the "Internet Information Services" node
    4. Right-click the "Web Sites" node and open it's Properties
    5. Go to the "Home Directory" tab
    6. Click the "Configuration" button
    7. At the bottom of that dialog, select and remove any Wildcard mappings.

    With the wildcard in place, all requests are still being routed to CFMX "jrun_iis6_sprers.eu".

    BlueDragon
    General Info
    Can I generate an Excel spreadsheet from BlueDragon?
    Yes, it's long been possible to generate Microsoft Excel files from CFML. Excel has a feature that allows an HTML table to be turned into a spreadsheet, so it's simply a matter of using CFML to produce the desired table, then using CFCONTENT to indicate that you're generating a file that should be processed as a spreadsheet. The spreadsheet will open either embedded in the browser or by opening Excel, as determined by the configuration of the user's machine.

    Following is an example. Simply copy and paste the CFML below into a CFML page on your server to test, then change to suit your own needs.

    And if you're interested in doing the same thing but without need to name each column (just want to dump all the columns in the CFQUERY), use this code instead to replace the table-generating tags at the very bottom of the example above:

    BlueDragon
    General Info, Known Limitations and Workarounds
    Can I generate charts and graphs in BlueDragon?
    Yes, this can be done using the CFCHART tag which was added to BlueDragon
    BlueDragon
    General Info, Known Limitations and Workarounds
    Can I generate PDFs in BlueDragon?
    Yes, it's possible right now to generate PDFs in BlueDragon, any number of ways. Some are commercial products, though with free trial editions. Others are free but require slightly more work, typically using CFOBJECT to call a Java library.
    • CF_PDF, a free custom tag which generates PDF. Sample code is included in the comments for the custom tag. Note that its FILE attribute requires a full path to the output file to create.
    • CFX_PDF, a commercial tag which, while currently protected using CFENCODE, will soon be available using BlueDragon approach to protecting code. Contact Charlie for more information.
    • FOP, a free Java library for generating PDFs among other things. The link provided is to a CFDJ article on integrating it with CFML. See the "feedback" link at the bottom of the article to find comments made by New Atlanta CTO, Charlie Arehart, on how to integrate that approach in BlueDragon.
    • HTML2PDF, a commercial solution (which is based on HTMLDOC
    • iText, a free java library which can be used and called from within BlueDragon CFML pages using CFOBJECT

    It may be useful to note, as well, that if you already have a PDF and want to fill it in using the FDF feature of PDF, you can do that from within CFML, as this tip explains (thanks Dale Smith for pointing that out).

    Additional FAQs or docs may be developed to expand on the details of using one or more of these alternatives.

    Additionally, see FAQ for more information on adding CFMX 7's specific tags for supporting features like PDF generation. But as this FAQ explains, you don't need to wait for that if you need these features now.

    BlueDragon
    General Info, Supported Features
    Can I really bundle BlueDragon with my CFML application, to sell it as a solution, with BlueDragon costing me less than the list price?
    Yes, indeed. We do permit you to distribute a CFML application bundled with any edition of BlueDragon for commercial deployment use. While you must obtain a redistribution license from us to this, the amazing thing is that you may not need to pay the full price for BD to do this.

    Consider a ColdFusion developer who wants to somehow bundle their CFML app with ColdFusion: they'd traditionally expect to have to pay $1,, per deployment. If you want to do of these, for some product that you want to sell for $, or even $1,, the economics just won't work, because you have to add in the $1, for CF. (And if you wanted to deploy on a J2EE server, with CFMX the cost for the Enterprise edition that permits this is $5,). Now, our pricing page shows that the list price of BlueDragon is already less than CF.

    But if you want to bundle (or we call it redistribute) your CFML app using BlueDragon (any edition, from the standalone Server edition to the J2EE edition or even our .NET edition), you may not have to pay anywhere near the full retail price. of BlueDragon

    Instead, the payment can be a royalty based on your product's sales price. The percentage is surprisingly low (but obviously if you have a $ product, it means you won't be paying any more than $ per license). That's not a typo. Now you're product no longer costs (your price + price of ColdFusion) but instead (your price + a percent of your price, for BD). Of course, if your product price is so high that even the percentage exceeds our list price, then you won't pay any more than the list price.

    We figure you're helping sell BD into places we never would--and we restrict the use of BD in this arrangement so it's only to be used to run your app, not any other your customer might want to build.

    If the idea interests you, please contact our Sales team.

    The bottom line is that we want to help you succeed and build a business based on your CFML skills and applications, where you might previously never have even thought of it.

    Protecting Your Code: Note, as well, that you can protect your code so that your clients cannot look at your CFML source, and it's not just an encoding as the CFCRYPT/CFENCODE utility required. We call it "precompiling" code, and you can apply the protection to some or all of your CFML templates (in case you need to leave some of your code unprotected for the end-users to edit). You can learn more about this at a FAQ of ours, Can you explain more about the possibility of encrypting and precompiling templates in BlueDragon. This is another way in which those packaging a CFML app can find entirely new markets, or can lower their price because they previously priced it high to protect against loss of their intellectual property.

    Expiring Your Code as a Trial: Still another great opportunity for deploying your CFML as a bundled application is that BlueDragon offers something ColdFusion never has. Using the precompiled templates feature discussed above, you can now also set an expiration date for your code. Note that this is not an expiration of the BlueDragon engine, but just of your code. And again, you can expire some or all of your code, as needed.

    BlueDragon
    General Info, Installation
    Do I have to pay to evaluate BlueDragon? Does BlueDragon offer trial and free development editions?
    All editions of BlueDragon are available for free evaluation, and for ongoing single-IP development use beyond that evaluation period. There are 4 editions, and this FAQ discusses each.

    sprers.eu

    The sprers.eu edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

    BlueDragon Server JX

    The BlueDragon Server JX edition starts out as a 30 day trial (from the day of installation) and after 30 days will revert to a single-IP developer edition.

    BlueDragon Server

    The BlueDragon Server edition has no trial or developer edition, because it's free for production deployment, subject to licensing restrictions. See the BlueDragon License Agreement for details.

    BlueDragon J2EE

    The BlueDragon J2EE edition starts out as a single-IP developer edition (because there is no installer, so no means to create a trial license key). Instead, an email will be sent to the downloading user which will offer a day trial license key.

    Converting to a Fully Licensed Edition

    Finally, note that all editions can be converted to a fully licensed edition simply by obtaining and implementing a valid production license key (using the BlueDragon Admin console). See FAQ for information (and a warning) about updating the current trial/developer license key.

    Does BlueDragon Charge for Use on Shared Testing and Development Servers?

    Contact BlueDragon Sales to discuss options for testing and shared development servers.
    BlueDragon
    General Info, Version differences
    Does BlueDragon/.NET support .NET ? How about SQL Server ?
    While .NET and SQL Server are still in beta, they are not supported formally in New Atlanta products. We've tested BD/.NET on .NET and while some features work, there are known issues that make it unusable for production. We've not done any testing with SQL Server and BlueDragon. When .NET and SQL Server are released by Microsoft for production use (beyond the "Go Live" license option), we'll support them with BD/.NET. Until then, they're not formally supported.
    BlueDragon
    General Info, Version differences
    Does New Atlanta plan to support the features in CFMX 7 in BlueDragon?
    Yes, New Atlanta is investigating features to be added for our BlueDragon 7 release, scheduled for later in Whether and when we implement specific ColdFusion ® MX 7 features will be determined by the reaction of the overall ColdFusion community to the new features and--most importantly--the feedback we get from BlueDragon customers and prospects.

    It's worth noting that some features added in CFMX 7 (and ) are things that BlueDragon has long had:

    • sourceless deployment (we've had it since BlueDragon , and we've added an expiration date enhancement in )
    • deployment on OS X in standalone mode (we've had that since )
    • standard WAR file deployment, with no post-deployment wizard (since )
    • passing XSTL parameters on XMLTransform() (since )
    • proper support of sprers.eu_info (see this BlueDragon blog entry)
    • and more
    Still, we realize people are looking for some of the things CFMX 7 has added which BlueDragon still has not.

    Note that many of the features can be made available now on BlueDragon (and indeed ColdFusion MX 6) by way of calls to underlying Java libraries or tools that CFMX 7 merely wraps up into tags. This may permit some to enable the functionality on their own at least until we determine which we will add and when we will add them.

    For instance, PDF generation in CFMX 7 is done using the iText java library and related tools, which can be called from within CFML using CFOBJECT. The reporting is done via JasperReports, also callable right now from CFML. (For those interested in Reporting solutions, see FAQ ).

    And the Flash forms feature leverages a subset of Flex (Macromedia's XML-based Flash generator) which has been embedded into CFMX 7. While we won't be embedding Flex into BlueDragon (the licensing costs would be prohibitive), most of the same kind of components can be generated using OpenLaszlo, another XML-based Flash generator that actually predates Flex. That can be used with BlueDragon right now, and we are investigating bundling Laszlo into BlueDragon in the future. Laszlo Release 3 adds still more powerful capabilities that we hope to leverage. See FAQ for more information on integrating BlueDragon and Flash today.

    Further, many may not really want *Flash* forms particularly, but just more effective user interfaces (grids, calendars, accordions, and such) without complicated programming and without reliance on Java (as CFFORM does prior to CFMX 7). Many of these interface controls are available in a variety of free and commercial packages, which can be easily integrated into CFML (and those using sprers.eu can leverage sprers.eu's powerful forms features). Also, many of those leverage Ajax functionality, which can certainly integrate with CFML on BlueDragon. Look for more information to come from us on these possibilities. In particular, see this blog entry on a unique option available right now.

    As for the Event Gateway, New Atlanta had started work on an equivalent feature and stopped when we heard CFMX 7 would add one. Like other feature, we want to wait and see what the community (and our customers) think of the various approaches Macromedia has followed in adding these features, so that we give our customers the best experience and the greatest value.

    As for the sprers.eu, that's something that can be simulated using the event handlers of the servlet API (on Servlets compliant engines) or via the sprers.eu file on .NET.

    If you wish to express an opinion for features you're interested, you can contact [email protected]

    BlueDragon
    General Info, Installation, System Requirements
    How can I determine whether service packs are installed on the .NET Framework?
    Microsoft has written the following Knowledge Base article to help customers answer this question: sprers.eu
    BlueDragon
    General Info
    How can I get the Macromedia Example applications to run with BlueDragon?
    The Macromedia example CFML applications (which come with CF4, 5, and MX) can be used to demonstrate CFML running on BlueDragon. We do not provide these examples, but if you have installed ColdFusion 5 or MX on your machine, and you chose to install the example applications, they can be found at /cfdocs/exampleapps/sprers.eu in your web site's document root.

    If you do not already have a datasource defined for ExampleApps, create one and point to the database file as appropriate for your operating system. In the case of CF5 on Windows, the sprers.eu can be found in C:\CFusion\database. For CFMX on Windows, it can be found in C:\CFusionMX\db.

    The CF 5 examples will for the most part run unchanged.

    On CFMX, the examples do require a change to one file to remove reference to the undocumented sprers.eueFactory class which BlueDragon does not support. See /cfdocs/exampleapps/global_sprers.eu, which is included from the exampleapps/sprers.eu file. You can comment out all the CFSCRIPT lines following

    sprers.eu = "ExampleApps";
    and then ensure just the following lines are not commented:
    sprers.eu = "ucase";
    sprers.euss = true;
    If you're not on Windows, then the values should be:
    sprers.eu = "ucase";
    sprers.euss = false;
    Other than that, most of the examples will run, which is a useful way to demonstrate standard CFML running on BlueDragon. Some of the examples do use tags or functions that are not supported. See the BlueDragon CFML Compatibility Guide for more information on unsupported CFML features.
    BlueDragon
    General Info, Known Limitations and Workarounds, Miscellaneous
    How can I upload a file to my .NET webapp (BD-enabled or not) that is larger than 4 Mb?
    In .NET, there is a default limit on the size of any web request of about 4 Mb. This is defined in the sprers.eu file. If you need to accomodate larger requests, you can override the setting in your website's own sprers.eu file by putting this tag inside the "sprers.eu" section, like this (for example):

    Note, that the number is in Kilobytes, so 80, represents 80 Mb.
    BlueDragon
    General Info
    How do I enable clustering in BlueDragon .NET ?
    In order for Session scope variables to be shared across the cluster, two things need to be done:

    1. sprers.eu needs to be configured to use State Server or SQL Server sessions.
    2. sprers.eu needs to be configured to use sprers.eu sessions.
    BlueDragon
    General Info, Security
    In IIS7, my application pool is running under ApplicationPoolIdentity. How can I give this user file permissions when it doesn&#;t show up as a User?
    You can add the app pool identy from a command prompt like this:
    icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
    Then, you can edit the security permissions through Windows Explorer.
    BlueDragon
    General Info, System Requirements, Web Server Support
    In the .NET edition of BlueDragon, I find that while I can run my CFML pages, when I try to access the BlueDragon Admin console I get &#;file not found&#; errors. What gives?
    The problem here occurs if you manually configure the IIS mapping page to set the file extensions (like CFM and CFC). There is an option there, called "check that file exists", which is enabled by default when you add a new mapping. You must turn that feature off. The BlueDragon admin console pages do not really exist (as explained in the documentation), so enabling this option causes the error.
    BlueDragon
    General Info, Installation, Known Limitations and Workarounds, Product Requirements
    Is BlueDragon supported on CentOS?
    Yes, although CentOS is not fully supported. We don't test on CentOS but understand that it is directly derived from RedHat Enterprise Linux, which we do support. This choice of platforms may result in some problems which we cannot predict nor possibly resolve.
    BlueDragon
    General Info, Known Limitations and Workarounds
    Is it true that Microsoft is retiring its Visual J# product? If there are no future development plans for Visual J#, how will this effect BlueDragon .NET?
    Microsoft is supporting Visual J# through , as stated on their web site:

    sprers.eu

    Visual J# and sprers.eu are fully supported on bit and bit editions of Windows Vista and Windows Server (sprers.eu was one of the first software products to receive Windows Server logo certification).

    Our plans are to re-engineer sprers.eu to remove the requirement for Visual J# prior to the release of the successor to Windows Server

    BlueDragon
    General Info
    The application pool that sprers.eu runs under is configured to shutdown under certain conditions. On low traffic sites this causes things like scheduled tasks to not run until the site receives another request. Is there a way around this problem?
    The best solution is to configure the application pool to not shutdown under certain conditions. This is done by right-clicking on the application pool and selecting properties. On the Recycling tab, uncheck the first three check boxes. On the Performance tab, uncheck the Idle timeout check box.

    You can also place the following code in the Application_End() method of sprers.eu so when sprers.eu is shutdown it will immediately be brought back up:

    sprers.eubRequest req = (sprers.eubRequest)sprers.eu("http:///sprers.eu"); sprers.eubResponse rsp = (sprers.eubResponse)sprers.euponse(); sprers.eu();

    Note that the above change will only help with application pool recycles. If the machine is restarted then the site won't come back up until it receives a request. The workaround for this is to create a Windows scheduled task that runs at start up time and sends a request to the site.

    BlueDragon
    General Info
    Why can&#;t I get my cfml pages to be served from a shared network drive? I keep getting File Not Found.
    The "File not found" reported by BlueDragon Server is due to its inability to access the CFML templates on the remote share that is configured as the IIS home directory. Just as IIS had to be configured with credentials (an account and password) to access this remote share, so must BlueDragon Server. By default, the BlueDragon Server service is installed to run using the "Local System" account. This account must be changed to one who is authorized to access the remote files using the "Log On" tab of the service's properties. Setting it to the same account as used within IIS is recommended.
    BlueDragon
    General Info, Security
    With sprers.eu, can the CFLDAP tag be used with SSL?
    The CFLDAP tag can be used with SSL using the following steps:
    1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
    2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
    3. Install the LDAP server's certificate into your computer's certificate store. This is described at sprers.eu

    If you don't install the LDAP server's certificate in your computer's certificate store then you'll receive the following General Runtime Error:

    sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

    If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

    sprers.euException, sprers.euException, Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational. ; ROOT CAUSE=Failed to connect to LDAP server (url = LDAP://sprers.eu=People, dc=newatlanta, dc=com) - The server is not operational.

    BlueDragon
    General Info, Security
    With BD/Java, can the CFLDAP tag be used with SSL?
    The CFLDAP tag can be used with SSL using the following steps:
    1. In the CFLDAP tag, set the port attribute to the value of the LDAP server's SSL port. The default port for SSL with LDAP is
    2. In the CFLDAP tag, set the secure attribute to CFSSL_BASIC.
    3. Install the LDAP server's certificate in the database of trusted certificates for the JRE being used by BD JX or BD JEE. This is done from the command line using the following steps:
      • cd JAVA_HOME/lib/security
      • if JAVA_HOME/lib/security contains a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
        • keytool -import -file ldap_server_sprers.eu -keystore jssecacerts
      • if JAVA_HOME/lib/security doesn't contain a jssecacerts file then enter the following command. If you are prompted for a keystore password and you don't know what it is then most likely it is still set to the default password 'changeit'.
        • keytool -import -file ldap_server_sprers.eu -keystore cacerts
    4. Restart either the BD JX service or the application server that BD JEE is running behind so that BD will pick up the changes made to the database of trusted certificates.

    For example, if BD J2EE is running with JDK on Windows then the value of JAVA_HOME for the JRE would be: C:\Program Files\Java\jdk\jre.

    If you don't install the LDAP server's certificate in your JRE's database of trusted certificates then you'll receive the following General Runtime Error:

    sprers.euicationException: simple bind failed: sprers.eu [Root exception is sprers.eudshakeException: sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target]; ROOT CAUSE=sprers.eutorException: PKIX path building failed: sprers.eutPathBuilderException: unable to find valid certification path to requested target

    If you hit a non-SSL port with secure set to CFSSL_BASIC then you'll receive the following General Runtime Error:

    sprers.euicationException: simple bind failed: sprers.eu [Root exception is sprers.eueption: Unrecognized SSL message, plaintext connection?]; ROOT CAUSE=Unrecognized SSL message, plaintext connection?

    HTTP Connections
    BlueDragon
    HTTP Connections
    What does BlueDragon do with HTTP authorization headers?
    BlueDragon puts HTTP authorization headers into the sprers.eu_AUTHORIZATION variable.
    BlueDragon
    HTTP Connections, Known Limitations and Workarounds, Miscellaneous
    Why do I get the error, &#;BlueDragonRunTimeEngine License Manager : This product is not licensed for this request&#;?
    This error means you're running BlueDragon in developer mode and trying to trying to access a CFML page from other than the machine on which it's installed (or at least, BlueDragon thinks that's the case, more on that in a moment).

    BlueDragon is available as a developer edition, which allows you to test it without expiration, but it's limited to accept requests only from the server on which it's installed. (You can request a license key for a day trial that removes that limit, or you can purchase a license. In either case, you can place the license key into the appropriate place offered in the BlueDragon Admin console or sprers.eu file.)

    So if you're trying to browse CFML pages and your request is coming from other than the server on which BlueDragon is installed, you can:

    • browse the pages from the server on which it's installed
    • use terminal services or SSH, etc., to connect to the server on which it's installed and browse pages from there
    • or install a trial or production license key

    Finally, note that the problem may also be you ARE trying to run it from the server on which it's installed but in your URL you're using something other than or localhost. For instance, if your machine is called "test", you may find that using that in the domain name still fails. Try changing to use either localhost of

    Installation
    BlueDragon, JTurbo, ServletExec
    Installation
    An InstallAnywhere-based installer (or other program) won&#;t run on my Windows machine. Why?

    First, you should read FAQ # to see if it applies in your case. That FAQ was written with JTurbo in mind, however it may very well apply to any InstallAnwhere-based installer running on Windows , so if that's your case you should try that FAQ first (even if you're not using JTurbo).
    If it does NOT apply, or it DOES apply but does not cure the problem, then the problem may be due to an operating system feature that's new in Windows SP1 & Windows XP SP2. That feature is called Data Execution Prevention (DEP). It serves to prevent viruses and other malicious code from ever executing.
    Programs that Windows deems to be malicious are stopped cold, and not allowed to run at all.
    It's possible to configure DEP so that it excludes certain programs, leaving them alone to do as they wish. To populate the list of applications that DEP will allow to execute, navigate to:

    That's where you should add the program(s) you wish DEP to leave alone.
    If the program that you add to that list is an installer, then after you successfully install you may want to consider adding that program's uninstaller to the list also. That way its uninstaller will be allowed to execute should you or someone else ever need to uninstall the product.

    Here is a more detailed description of how to find the DEP settings plus more information about them:

    Open the System Properties dialog:

    • For a Win XP sp2 machine, one way to bring up this dialog is to go to My Computer and click "View System Information".
    • For a Win sp1 machine, one way to bring up this dialog is to go to the Control Panel, and choose System.
    Once there, go to the Advanced tab. Click the button labled "Settings" in the category/group labeled "Performance". This brings up the "Performance Options" dialog. Go to the "Data Execution Prevention" tab of that dialog. There are two options for DEP:
    • Turn on DEP for essential Windows programs and services only
    • Turn on DEP for all programs and services except those I select
    In our experience, having the 1st option selected alleviates all DEP-related problems from occuring on the machine. The Win XP Professional Help dialog had this to say about DEP:
    Data Execution Prevention (DEP) helps prevent damage from viruses and other security threats that attack by running (executing) malicious code from memory locations that only Windows and other programs should use. This type of threat causes damage by taking over one or more memory locations in use by a program. Then it spreads and harms other programs, files, and even your e-mail contacts. Unlike a firewall or antivirus program, DEP does not help prevent harmful programs from being installed on your computer. Instead, it monitors your programs to determine if they use system memory safely. To do this, DEP software works alone or with compatible microprocessors to mark some memory locations as "non-executable". If a program tries to run code?malicious or not?from a protected location, DEP closes the program and notifies you. DEP can take advantage of software and hardware support. To use DEP, your computer must be running Microsoft Windows XP Service Pack 2 (SP2) or later, or Windows Server Service Pack 1 or later. DEP software alone helps protect against certain types of malicious code attacks but to take full advantage of the protection that DEP can offer, your processor must support "execution protection". This is a hardware-based technology designed to mark memory locations as non-executable.
    By default, DEP is only turned on for essential Windows operating system programs and services. To help protect more programs with DEP, select Turn on DEP for all programs and services except those I select.

    If none of this helps you then you may find the following information to apply in your case:



    Some possible workarounds or ways to try to solve this problem include:
    1. Run the installer on another machine and then copy the installed folders to the target machine. Since JTurbo is really just a set of JARs (often only 1 JAR is needed/used by people sprers.eu) and a set of examples and documenation this is fine to do.

    2. OR
    3. Try running the installer on the problem machine but either:
      • uninstall the JVM there first and maybe reinstall a different JVM version before trying to run the installer

      • OR
      • try running the installer from the command line as described in section of the JT Installation Guide (this involves holding down the control key) Or perhaps do so by typing the name of the installer on the command line (not double-clicking) and passing the "-i console" option or maybe even the LAX_DEBUG=true option or maybe even the LAX_VM option as Macrovision describes on their webpage
    BlueDragon
    Installation, Supported Features
    Does BlueDragon run on or at least support integration with iSeries systems (formerly known as AS/&#;s)?
    BlueDragon can both run on and/or integrate with iSeries systems.

    First, as far as running CFML on iSeries, you can do that with our J2EE edition. (You can also integrate CFML with iSeries resources using our other editions of BlueDragon, Server and Server JX, as will be discussed later). The J2EE edition runs on any J2EE server or servlet engine. IBM's own WebSphere runs on the iSeries platform (see sprers.eu), and there may be other servlet engines/J2EE servers that run on it as well.

    Deploying CFML on J2EE is very easy with BlueDragon. Our documentation on the subject, "Deploying CFML on J2EE Application Servers" is available on our web site in the docs page of our self-help area. Also, our CTO, Charlie Arehart, did an article in the April ColdFusion Developers Journal called, "Making the Case for CFML on J2EE". It's available on the CFDJ site at sprers.eu?storyid=&DE=1.

    There is also the possibility to integrate from CFML to iSeries data, applications, and components.

    First, as may be obvious, you can connect to databases on iSeries using ODBC or JDBC. This (and connecting to applications) is covered in the Dec CFDJ article, "MX to iSeries Demystified", available at sprers.eu?storyid=&DE=1. While the author (and the title) suggest it's somehow CFMX-specific, it is not.

    As he notes, to connect via ODBC you need the "Client Access for iSeries" tool which is a licensed program from IBM. But you can use it, and he shows how to set up datasources in ODBC and JDBC to connect using that. This would work in BlueDragon as well.

    But he also points out the available JTOpen open source driver from IBM, and if you dig into that, you'll learn (at sprers.eu#how) that it can link to more than just databases but also the file system, programs, commands, data queues, printers, jobs, messages, and lots more. The CFDJ article explains how to get and use the tool, and the steps are pretty much the same in BlueDragon.

    Still another couple of ways that he doesn't mention are possible, and they're generic to CFML (whether running on BD or CF): you can call Enterprise JavaBeans (running on any J2EE server) using CFOBJECT. Also, you can call a web service on any server using CFINVOKE (and CFOBJECT). These are two generic ways CFML can call any enterprise object on another platform, and they're a powerful possibility for greater enterprise integration. These latter two approaches don't require that you necessarily be running the CFML on the same server as the iSeries.

    So as you can see, beyond just running the CFML on iSeries, you may also open tremendous doors of possibility for integrating your CFML with iSeries. We're happy to help you as you explore these possibilities.

    BlueDragon
    Installation, Web Server Support
    Does BlueDragon support Apache 2?
    BlueDragon and above supports Apache 2. See the system requirements page for more information on hardware/software support.

    You may experience some challenges with different point releases of Apache 2, depending on the edition and point release of BlueDragon you're running. For information on known challenges integrating with Apache 2, please search for other FAQ entries referring to "Apache".

    BlueDragon
    Installation, System Requirements, VM Support
    How can I install BlueDragon Server or JX onto a MacOS X system that has Java installed as the default version?
    Newer shipments of Apple Mac hardware include both Java and (Java 5), AND have configured the Java 5 version as the default. Since BlueDragon versions prior to do not run on Java 5, the installation will fail. To work around this problem, the default Java version must be changed to Java There are two methods to accomplish this, both will preserve the Java installations (ie they will not be uninstalled). You need only use one of these procedures to have your system use Java as its default Java installation.

    Change the Java version via the Runtime Settings:
    1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities > Java > J2SE "
    2. Open the "Java Preferences" application.
    3. Click the drop down lost beside "Use Version" and select "".
    4. Under the "Java Application Runtime Settings" click and hold the "J2SE " listing and drag it to the top of the list, above "J2SE ".
    5. Quit the "Java Preferences" application.
    6. Restart/reboot the system.

    Change the symbolic links used to select the default Java version:
    1. Open a new finder window in OS X. Navigate to the following location: "Applications > Utilities"
    2. Open a "Terminal" application.
    3. Enter: 'su root'
    4. Enter the 'root' password
    5. Enter: 'cd /System/Library/Frameworks/sprers.euork/Versions'
    6. Enter: 'ls -lsa'
    7. The above command should display the following amongst the contents of the directory: "CurrentJDK -> "
    8. Enter: 'ln -shf CurrentJDK'
    9. Verify the change by entering: 'ls -lsa'
    10. The following should now be listed: "CurrentJDK -> "
    BlueDragon
    Installation
    How do I get the BDJX Linux installer to run on a non Graphical Linux System?
    A non-graphical Linux system is one that lacks an X11 display (or whose DISPLAY variable is not set). Such a system is sometimes called "Headless" and graphical operations (GUI) will fail on it. The default installation mode for a BDJX Linux installer is GUI, so running that installer on a Headless system will give the following sort of error:
    The recommended way to get past this issue is to run the installer in console mode. For example:


    For those who would prefer the installer to default to GUI mode on systems where that's possible (already the case), but to also default to console mode on systems where GUI is *not* possible here is an unsupported way around it:
    Run the following script to create a modified copy of the installer:

    Thanks to Benoit Plessis for providing the script above.
    Also thanks to Dan Moore for his blog post which pointed the way to this solution.
    BlueDragon
    Installation
    How do I run the BlueDragon Server JX installer silently?
    • For BDJX
      1. Make sure you are using one of the patched BDJX installers found here:
        ftp://sprers.eu
        (or a newer installer if one is available).
      2. Create a file named and place it right next to the installer executable on your hard-drive.
      3. populate that file with (for example) the following details:
      4. Regarding BD_wsType:
        It is only used when BD_Do_adapter=true
        Valid ValuesMapped External Webserver
        AP2Apache x
        Apache22Apache x
        AW2Apache x
        Apache20 Apache x
        IISIIS
        Note that AWS which corresponds to Apache x is not supported by BDJX Also, BD_Instance & BD_User are not needed by BDJX They can be there or not, it makes no difference.
      5. Then simply invoke the installer as usual. It will detect the file there and use it to perform a silent installation.
    BlueDragon
    Installation
    I&#;m trying to apply the Hotfix for BlueDragon/.NET, but when I try to drag and drop the dlls, they won&#;t copy. What gives?
    In FAQ , we explain when and why to apply the hotfixes. The sprers.eu for each hotfix zip (downloadable from the web site) explains how to apply the fixes, and one for the .NET edition explains that for some types of installations you must drag and drop the updated DLLs to the "global assembly cache" (or GAC) located at windows\aseembly directory (and that you can't copy and paste them).

    But the hotfixes are in a zip file, and while Windows may permit you to open that zip file to view it as if it is a regular directory, you'll find that when you try to drag the files out of the "directory", it won't work.

    The problem is simply that you must first extract the zip file (or copy/paste the files to a regular directory first), and then drag/drop the files from there to the GAC (windows\assembly directory). Don't forget to restart IIS afterward.

    BlueDragon
    Installation
    I&#;m trying to install BlueDragon .NET on a brand new machine and the installer fails when I double click on it.
    Look in C:\Documents and Settings\username\WINDOWS and see if you have a folder named Fonts inside WINDOWS. InstallShield will fail without it. Add the folder (empty) and run the installer.
    BlueDragon
    Installation
    I&#;ve installed sprers.eu but it doesn&#;t work properly. How can I verify it was installed properly?
    Perform the following steps to verify sprers.eu was installed properly:
    1. For a single virtual directory install, verify the following DLLs were placed in the <installation directory>\bin directory: sprers.eu, sprers.eu, sprers.eu and sprers.eu For all other installs, verify these DLLs were installed to the Global Assembly Cache (GAC). The GAC is located at <Windows directory>\assembly.
    2. For a single virtual directory install, verify a sprers.eu file exists in the <installation directory> directory. This file must contain the following elements (NOTE: To make this FAQ easier to read, some attribute values are shown on multiple lines. When manually entering these elements, the attribute values must be placed on a single line.):
      • <section name="bluedragon" type="sprers.eulueSectionHandler, System, Version=, Culture=neutral, PublicKeyToken=b77a5ce" />
      • <bluedragon> <add key="SINGLE_WEB_APP" value="TRUE"/> </bluedragon>