.NET Site assemble from Site Properties leads to an error
.NET Site assembly from Site Properties leads to an error:
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'file'
/include/assemble_page_net_final.inc, line 1016
Investigation:
Issue with QP7 and .NET where .NET locks up assembled files that are being requested by site visitors.
Workaround:
As a workaround, instead of assembling the whole site, go to a specific template and navigate to "Template Pages", use checkboxes on the left to check several pages at a time and then click on "Assemble" at the top. Repeat this for all pages of the template.
Another alternative to this is to temporarily disable access to the site so no requests are made by site visitors and then assemble the site and reenable site access.

Clearing up QP 7 temp files to free up hard drive space
It's recommended to delete some contents of the temp folders to free up server space:
Following items could be deleted on the web server :
=> everything from -- \live\temp\preview\objects
=> everything from -- \stage\temp\preview\objects
=> ".mdf files" from -- \live\temp
=> ".mdf files" from -- \stage\temp
=> Files (.mdb, .xml, .zip) from the temp folder that is specified in "Q-Publishing Configuration.xml" ( C:\Program Files\Quantum Art\QP7.Framework ), e.g. <app_var app_var_name="TempDirectory">C:\Temp\</app_var>

Form Submission having user notification trigger results to an error
Investigation:
There is a problem with form submission ( .NET Application ) having user notification attached to that.
ERROR: Server Error in '/' Application.
Internal Server Error(500): http://URL/_notify/AssembleFormat.asp?object_format_id=1361
Resolution:
The error refers to not being able to use the Notifications feature for the contents after front-end form submission (when there should be a Notification sent to the user).
This functionality may not be working due to some settings in the "web.config" or "Global.asa" files. Sites global.asa should have correct "MailHost", "Username" and "Password" defined with the correct SQL connection parameters.

How to prevent SQL injection through front-end site?
=> The ideal QP 7 setup scenario would be the web server and SQL server separated and the web server should be behind the firewall.
=> Turn off any services except TCP/IP on the external network interface and also turn off NetBIOS as well.
=> Install all windows updates that are available, also install all available SP for SQL
=> Create new SQL user account for read only and change the connection entry parameter in the "global.asa" files for ASP and "web.config" for ASP.NET sites (this is to put site SQL connection to read only mode )
=> Following items should be checked for the Templates in the backend:
1. For reading parameters that are being passed in through the web use the following functions: StrValue(), NumValue(), Value() (same as StrValue() ). All of these functions delete single quotes when are invoked.
2. DirtyValue() normally should not be used to read parameters from the web because it does not strip out single quotes. It should be used to read internal values that contain single quotes that are set by using AddValue() method
3. NumValue() should be used for all parameters where a number is expected that will prevent any other strings to included in the parameter value.
4. Before parameters in the filter of "Publishing Container" objects are sent to the database they are "cleaned". The following words get deleted from the filter : create |delete |update |grant |revoke |drop |alter |create |backup |restore |sp_|truncate |set |exec |execute |dbcc |deny |union . The later versions of QP7 support this functionality. If you have a version below 7.4 you should get upgraded.
5. In addition to the list above you can implement your own functions that can check http parameters to strip out any other SQL words that you know should never be received from the browser. However, this usually does not work for forms (as opposed to query string) since many SQL words (like select) are commonly used in the English language.
6. As the website admin you should never show the explicit server error messages on your site. Instead create a generic page that is shown when a 500 error occurs. IIS can then be configured to show your custom page for 500 errors. These errors when they do occur should also be logged for your own debugging purposes. Refer to Microsoft documentation and internet articles on how to implement custom 500 error pages.
7. In your code check the http parameters for types. For example, if you're using StrValue and expecting a date use the functions in your programming language to try to convert the string to a date. If it does not get converted then you know there is a problem.

How to use "Input Mask" parameter for string field?
"Input Mask" for string type field is used for putting validation, so custom option could be used and it takes regular expression as defined by javascript for validation. For example, this is the validation for an email: ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$ , similary, ^([0-9_\.\-]) for phone etc.

Issue with failure to delete Content in version QP 7.6
When trying to delete a "Content" in QP 7.6, following error is reported:
"Microsoft OLE DB Provider for SQL Server error '80040e14'
DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'.
/include/form.inc, line 355 "
Resolution:
Here's the database fix for this issue. The script below needs to be executed against QP7 database on the SQL server ( Backup database before running the script ) .
------------------------------------------------------------------------------------------
/* START OF SCRIPT */
--List of object for rebuild
-- CONTENT - triggers
---|--content_group - triggers
---|--|--site - triggers
---|--|--USERS - triggers
-- CONTENT_ITEM - triggers
---|--STATUS - triggers
declare @object_name nvarchar(4000)
declare @object_type nvarchar(50)
declare @count int, @counter int
CREATE TABLE #objs
(
Id int identity(1,1),
Obj_Name nvarchar(1000),
Obj_Type nvarchar(50)
)
/*
types like a table sysobjects
P - procedure
TR - trigger
*/
insert into #objs (Obj_Name, Obj_Type) values ('CONTENT', 'TR')
insert into #objs (Obj_Name, Obj_Type) values ('SITE', 'TR')
insert into #objs (Obj_Name, Obj_Type) values ('USERS', 'TR')
insert into #objs (Obj_Name, Obj_Type) values ('CONTENT_ITEM', 'TR')
set @count = (select count(*) from #objs)
set @counter = 1
WHILE @counter <= @count
BEGIN
select @object_name = Obj_Name, @object_type = Obj_Type from #objs where Id = @counter
CREATE TABLE #temp
(
Proc_id INT,
Proc_Name SYSNAME,
)
INSERT #temp(Proc_id, Proc_Name)
select sc.id, OBJECT_NAME(sc.id) from sysobjects parent
inner join sysobjects childs on childs.parent_obj = parent.id
inner join syscomments sc on childs.id = sc.id
where parent.[name] = @object_name and childs.xtype = @object_type
GROUP BY sc.id, OBJECT_NAME(sc.id)
HAVING COUNT(*) < 2
-- declare local variables
DECLARE
@curName SYSNAME,
@curtext NVARCHAR(4000)
DECLARE c CURSOR
LOCAL FORWARD_ONLY STATIC READ_ONLY FOR
SELECT OBJECT_NAME(id), text
FROM syscomments s
INNER JOIN #temp t
ON s.id = t.Proc_id
ORDER BY id, colid
OPEN c
FETCH NEXT FROM c INTO @curName, @curtext
WHILE (@@FETCH_STATUS = 0)
BEGIN
--recreate object
if @object_type = 'TR' BEGIN
BEGIN TRANSACTION
EXEC('DROP TRIGGER ' + @curName)
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
exec sp_executesql @curtext
COMMIT TRANSACTION
--Info to output thread
print @curName + ' - rebuilded'
END
FETCH NEXT FROM c INTO @curName, @curtext
END
-- clean up
DROP TABLE #temp
CLOSE c
DEALLOCATE c
set @counter = @counter + 1
END
DROP TABLE #objs
--Check objects where size > 8000 bytes
if exists (select sc.id, OBJECT_NAME(sc.id) from sysobjects parent
inner join sysobjects childs on childs.parent_obj = parent.id
inner join syscomments sc on childs.id = sc.id
where parent.[name] = @object_name and childs.xtype = @object_type
GROUP BY sc.id, OBJECT_NAME(sc.id)
HAVING COUNT(*) > 1) BEGIN
select sc.id, OBJECT_NAME(sc.id), 'Not rebuilded. Size of object more 8000 bytes' as [comment] from sysobjects parent
inner join sysobjects childs on childs.parent_obj = parent.id
inner join syscomments sc on childs.id = sc.id
where parent.[name] = @object_name and childs.xtype = @object_type
GROUP BY sc.id, OBJECT_NAME(sc.id)
HAVING COUNT(*) > 1
END
/* END OF SCRIPT
----------------------------------------------------------------------------------------

Issue with failure to delete list of articles in version QP 7.6
When trying to delete a list of articles in QP 7.6, following error is reported:
"Microsoft OLE DB Provider for SQL Server error '80040e14'
DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'.
/include/form.inc, line 355 "
Resolution:
Here's the database fix for this issue. The script below needs to be executed against QP7 database on the SQL server ( Backup database before running the script ) .
------------------------------------------------------------------------------------------
/* START OF SCRIPT */
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbd_delete_content_item]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[tbd_delete_content_item]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[tbd_delete_content_item] ON [dbo].[CONTENT_ITEM] INSTEAD OF DELETE
AS
BEGIN
IF dbo.qp_get_version_control() IS NOT NULL BEGIN
delete item_to_item_version from item_to_item_version iiv
inner join content_item_version civ on civ.content_item_version_id = iiv.content_item_version_id
inner join deleted d on d.content_item_id = civ.content_item_id
delete item_to_item_version from item_to_item_version iiv
inner join deleted d on d.content_item_id = iiv.linked_item_id
END
delete item_to_item from item_to_item ii
inner join deleted d on d.content_item_id = ii.r_item_id or d.content_item_id = ii.l_item_id
delete content_data from content_data cd inner join deleted d on cd.content_item_id = d.content_item_id
delete content_item from content_item ci inner join deleted d on ci.content_item_id = d.content_item_id
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
/* END OF SCRIPT
----------------------------------------------------------------------------------------

Notification issue after submitting the front-end form (.NET application )
Investigation:
There is a problem with form submission ( .NET Application ) having user notification attached to that.
ERROR: Server Error in '/' Application.
Internal Server Error(500): http://URL/_notify/notify.aspAssembleFormat.asp?object_format_id=1361
Resolution:
.NET Sites "web.config" file should have an entry under <appSettings> and Notify.asp must have letter "N" in uppercase
e;g: <add key="RelNotifyUrl" value="_notify/Notify.asp"/>

Site backup/Restore issue due to QP 7 version conflict
Investigation:
Using "Site Backup/Site Update" or "Object Export/Object Import" feature in QP 7 results to an error if the backend versions are NOT same in production/development environment.
Error:
Technical information:
Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Incorrect syntax near the keyword \'WHERE\'.
/include/site_backup_func.inc, line 3025
Workaround:
QP 7 version should match while using this feature in separate environment, so development and production server should have the same backend version.

What if I can't find an answer to my question in the FAQ?
The FAQ has grown recently, and it is currently serving as a 'help' menu. In addition to this resource, we have the Online User Guide.
We are currently developing a help section to add to a new support section for our ODC site, accessible by customers with support agreements.
If you can't find the answer to your question in these resources, you have these options:
- Support Contacts of customers with current support agreements can log in to support.quantumart.com and submit an inquiry.
- ODC members can ask a question in the forum
- Potential customers who want to know more about our products can contact sales [at] quantumart.com.

Selecting all Page Objects on the "Page Objects" page of backend can also select all Template Objects (in the collapsed list), then if delete is performed all objects can be deleted: Page Objects and Template Objects.
Please upgrade to version 7.5.5.0 or higher to resolve this issue.

For .NET Sites when a qp7 notification is triggered, it may cause .NET to reload the application pool which may lead to lost user Sessions (being logged out, etc.)
NOTE: This only affects .NET built with QP7.Framework.
Currently when notification is triggered a control is assembled and then executed. .Net Platform reacts to this by unloading the whole Application Pool, thus leading to lost Sessions (Sessions are in-memory objects which are commonly used to keep the information about site visitors). Quantum Art is working on a solution where the notification controls would only get assembled if object code is changed (changes to template, page or site configurations may also mark the object for reassembly).
The workaround for this is to set the site in "stage" mode in the backend at the "Site Properties" tab, this way it will not affect the "live" site (it's generally recommended to keep the site in "stage" mode). In addition, the "stage" site in IIS has to be setup as a separate application from live site with its own Application Pool.
As a more permanent solutions:
- Create a new Application Pool in IIS and name it "QP Notifications and Previews".
- Next create two applications in IIS for these folders /live/temp/preview/objects and /stage/temp/preview/objects (this is where the preview and notifications objects and pages get assembled to). While creating the applications, link their applications pools to "QP Notifications and Previews" pool, created in the first step.
- To these folders: /live/temp/preview/objects and /stage/temp/preview/objects copy folders: bin, _notify from the "live" directory.
- To these folders: /live/temp/preview/objects and /stage/temp/preview/objects copy file(s): web.config (globa.asax if you use it)

What's the fastest way to get assistance from Quantum Art Customer Support?
If you have a current support agreement, have your Support Contact log in to support.quantumart.com and fill in the form.
The most important thing any customer can do to help us assist you is to give us adequate information:
- Screen shots showing the actual results can be attached once the entry is submitted and there is a 'bug' number assigned.
- Paste the text of error messages
- Explain the steps that caused the problem - how can our team reproduce it?
- Were there any recent changes to your network?
By taking a few minutes to analyze the issue - customers are the experts of their own systems - and submit a clear explanation of what happened (and best guess of what should happen and what needs to happen), our team can help you find the solution faster.

What if I want help to solve a problem?
The goal of Quantum Art Customer Service is to assist customers to use QP7 effectively. The best way to accomplish this is through continued development of resources: our product documentation, our training program, the online resources available on the ODC, and finally through our support engineers.
There are different types of issues that customers bring to Support, categorized as:
- How to use QP7 features
- How to install, configure and administer QP7
- How to develop templates for QP7
Causes are categorized as:
- Training
- Documentation
- Application Bug
For training issues there is a program; please ask for a brochure about it. We can schedule standardized or custom training for any aspect of using our product – including how to arrange networks to integrate Quantum Art’s products with 3rd party software.
We can help with the second cause because, as the authors, we can point to the solution in our Online User Guide or the known issues part of the FAQ, or in the Developer Guide. If we don't have a good section for your particular issue, our support engineers can help and we will add the issue to our new help section.
Bugs in QP7 are also all being tracked via our new support ticketing system and will be addressed in future releases. Immediate 'hotfixes' or work-arounds are also sometimes necessary - these become part of the product team's plan for future releases.
Although requests for consulting services are not covered by the support agreement, many customers engage with our Professional Services department to complete projects from a simple implementation of one of the free objects available in the Object Library to a complete re-design of a site.

Article schedule error
Article schedule errors out :
Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E09)
The SELECT permission was denied on the object 'sysjobs_view', database 'msdb', schema 'dbo'.
/backend/contents/records/schedule/act_update_schedule.asp, line 117
Resolution:
Add "publishing" user to "msdb" database with read/write permissions. Here's the MSDN link for Granting Access to SQL Server Agent. Basically, To use SQL Server Agent, "Publishing" user must be a member of following fixed database roles: "SQLAgentUserRole" and the roles are stored in the msdb database.
http://msdn2.microsoft.com/en-us/library/ms190926.aspx
If the ownership of "msdb" database is changed, Following statement against Master DB should fix this ( after backing up database ) :
USE msdb
EXEC sp_changedbowner 'sa'
EXEC sp_dboption 'msdb', 'db chaining', true

Backend logout issue
Backend log-out issue happens when OnScreen is used and then try to click on anything else in the backend.
Investigation:
Google analytics javascript, somehow interacts with the parent window (backend) and causes it to lose it's session.
Workaround:
Google analytics should not be included on the "stage" site by checking this property: QPage.QP_IsInStageMode (it's true if the site is in stage mode)

Differentiate between Live and Stage States in the backend?
QP7.Framework offers Live or Stage states. The default state is Live. If set to Live, all structural changes will be made to the Live mode. If set to Stage, all changes will be made to the staging version of the site.
The radio-buttons under the heading “Live State” determine whether the changes made in the Backend appear immediately on the live site, or are applied to a staging copy of the site first. If you choose “Live”, the appearance and contents of your site will be altered as soon as you save modifications, with the exception of content that has been scheduled to appear at a later date or time. On the other hand, selecting “Stage” allows you to test site functionality and correct possible mistakes on a staged copy. The staged site only becomes available to general users after it is switched to Live mode, and its pages assembled.
The section, “Live Pages Location”, is used to define the name of the directory containing the live site pages, along with its location. The “Stage Pages Location” section is used to define the virtual root and the directory used for staging, if staging is to be used at all.

From where does the "Select Global" button pull the list of global styles?
The "Select Global" button in the Styles Editor always shows an empty drop-down. Where does it pull the list of global styles from?
To fill the the drop down 'select global class' inside Style Properties, you need to have an object of type "CSS" and on the "Object Info" tab check the "global" checkbox, then if the button "Select global" is clicked for "Class" at the time of creating new style, all the css class from the global css object will be displayed in the drop down to define class for that particular style.

How do I enable OnScreen in QP?
=> Open Q-Publishing Configuration.xml file(C:\Program Files\Quantum Art\QP7.Framework\qa) and add a line:- <app_var app_var_name="allow_stage_edit_without_SSL">yes</app_var> Update the file.
=> Open Query Analyzer, Login as sa and we will need to run this query in the database(publishing): update content_attribute set allow_stage_edit = 1
=> open global.asa file (inside folder qp_demo), add statement: Sub Session_OnStart GetBackendAuthentication End Sub After Script:- <!--#INCLUDE VIRTUAL="/include/frontend_authentication.inc"--> Save the file
=> In the backend check the user profile: Allow on Screen "for fields" should be on, and under "Site Properties" for OnScreen Assembling Parameters, Always should be on for Field Border and Object Border should be never.
=> Change the State from Live to Stage and Update site properties, now you can assemble the site in Stage mode.Once its done you can change the mode from Stage back to Live and update.
=> Restart IIS as we made changes to Configuration.xml file and open new session(new browser), Login to backend and check OnScreen.

How do you change the administrative email address and "from name" that is used for the Sender in the email notifications?
The "from name" can be modified here:
- backend: inside Q-Publishing Configuration.xml, this line <app_var app_var_name="MailFromName">Q-Publishing Backend</app_var>
- front-end: inside global.asa, modify or create this variable Application("MailFromName") = "from some name"
The email address is the one used by the admin user. It can be changed by modifying "User Info" in the backend.

How does article schedule work?
To schedule an article is to define when it becomes visible and when it becomes invisible. During article schedule note that "Start Date" and "Start Time" are in the future (even 5 minutes in the future).
Once the "Start Date" is reached: If schedule is a "one time event", the article will remain visible until the "End by" date and time is reached, at which point it will become invisible.
If schedule is a "recurring schedule", the article will remain visible between "Start" and "End" (or "Duration") defined under "Publishing Time". The schedule will start from the "Start" date and end on the "End by" date defined under the "Range or recurrence".

How the database log space is recovered ?
the database log space is recovered by executing:
backup log yourDB with truncate_only
dbcc shrinkdatabase ('yourDB',0, truncateonly)

How to fix backend search error?
when attempting to search for something in the backend interface:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Execution of a full-text operation failed.?
If Full-text search catalog is configured in SQL server
To resolve this :- configure full-text search for tables content_data and Object_format for QP7 database.

How to lock article permanently?
Locking and Unlocking Articles for Editing
An article can be locked in order to prevent others from making any changes to it. On the right-hand side of the Article Info screen toolbar is a Lock icon . Clicking on the Lock icon opens the “Lock / Unlock” dialog box, which can be moved or closed.
The opened dialog box includes a Permanent Lock check box, placed below the image. Selecting the check box locks the article and prevents others from editing it. De-selecting the check box unlocks the article. To close the dialog box, click the close button its upper-right hand corner.
 A locking or unlocking event generates a corresponding record in the section Status History. Any articles locked by a user will also appear in the Articles Locked by You applet on that user’s dashboard.

How to move the QP 7 database to a separate server?
The steps are:
1. backup your database, full backup
2. restore the back up on the new server
3. create login 'publishing' on the new server that is connected to the database user 'publishing', note the password
4. switch server name (and user name / password if you changed them) in the connections string in "Q-Publishing Configuration.xml" for your customer code
5. switch server name (and user name / password if you changed them) in the connectin string of your site: global.asa for ASP and web.config for .NET

Is there a way to use integrated security for the SQL server login, instead of an SQL user account?
To use integrated security for the SQL server login.
For the backend: Change "QP 7 Configuration.xml" file (C:\Program Files\Quantum Art\QP7.Framework ) for example:
<db>Provider=SQLOLEDB;Trusted_Connection=yes;Initial Catalog=;Data Source=;Workstation Id=localhost;User ID=;Password=</db>
For frontend: If the site is ASP based than use the same mechanism as for the backend, and modify global.asa file, while if the site is "ASP.net/C#" based than "web.config" file needs to be changed and also add "impersonate=true" setting there.

Latest QP 7 user guide
To check latest user guide, please visit:-
http://guide.quantumart.com

Microsoft Data Access Components (MDAC) 2.8
Download Microsoft Data Access Components (MDAC) 2.8:-
http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en

MSXML 4.0 Service Pack 2 (Microsoft XML Core Services)
Download MSXML 4.0 Service Pack 2 (Microsoft XML Core Services):-
http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&DisplayLang=en

Setting up Notification to work in the backend
FOR NOTIFICATION:-
In order to enable notifications you have to set up an account on your SMTP MAIL SERVER and make sure that your WEB SERVER is allowed to send (or relay) emails to the MAIL SERVER (via trusted list).
The next step is to verify that server folders "live" and "stage" as well as all of their child folders have appropriate permissions. (Group "Everyone" has "modify" access or users IWAM_machinename and IUSR_machinename have "modify" access)
Then, you have to change "Q-Publishing Configuration.xml" file (c:/program files/Quantum Art/qa/ or C:\QA )
update these lines: -
<app_var app_var_name="MailHost">Enter your mail server name or ip address</app_var> <app_var app_var_name="MailLogin">Enter email account name</app_var>
<app_var app_var_name="MailPassword">Enter the password for the account</app_var>
Your global.asa for your site should look something like this:
Sub Application_OnStart Application("ConnectionString") = "...................." Application("MailHost") = "Enter your mail server name or ip address"
Application("MailLogin") = "Enter email account name" Application("MailPassword") = "Enter the password for the account" End Sub
Next, login to the backend. Each Q-Publishing user that needs to receive email notifications needs to have "Subscribe" option checked on the "User Info" screen.
P.S. You can verify that your email account works by setting up an "Outlook Express" account and sending a test email.

What are the hardware requirements?
Please refer to the following link:
http://guide.quantumart.com/user_guide.asp?item_id=5832

What are the minimum access rights required to install QP 7 Framework?
For the installation one should be logged in as a Windows Admin. It has to be done through windows initially, not through SQL Server. Later upgrades can be handled through SQL Access only.

What are the software requirements?
Please refer to the following links:
Server Software Requirements: http://guide.quantumart.com/user_guide.asp?item_id=5834
Client Software Requirements: http://guide.quantumart.com/user_guide.asp?item_id=5835

What are Virtual Contents?
Virtual content is a content collection type unique to QP7.Framework. Unlike other content collections, the structure of virtual content fields is determined by its source content collection(s). It is not possible to add articles to, or directly edit articles within, a virtual content collection.
The Type option is displayed when the user selects the Virtual Content check-box, and offers three radio buttons for choosing Virtual Content type: Join, Union, and User Query.
Virtual content of Join type binds two or more source content collections that have pre-existing relational relationship(s). Virtual content of Union type collectively pools the articles of two or more content collections, for the field(s) common to those collections. Virtual content of User Query type returns a virtual collection based on a user-entered SQL query.

What's the difference between Object and ObjectNS functions, and also Field and FieldNS?
That has to do with OnScreen functionality. If you choose FieldNS, onscreen will not work for this field; you probably want to use it for fields that are used inside javascript sections or <title> tag or anywhere else where inserting html is not appropriate.
The same goes for the ObjectNS function. It will prevent the object from participating in the OnScreen functionality.

When a site or template is assembled all of the objects are assembled and not just the once that changed.
Currently, there is an issue with assembly when working in Stage Mode. When a site or template is assembled all of the object are assembled and not just the once that changed -- this happens despite the fact that "Force Assemble" is unchecked at "Site Properties".
NOTE: Usually, "Force Assemble" should not be checked so that assembly is incremental, only changed objects get assembled.
The workaround for this is ( Basically, the idea is to start working in "live" mode with a new IIS development site or directory pointing to another live/development folder ).
1. Create a directory on server that will be used as a new location of the live site, e.g. c:\inetpub\wwwroot\development\mysite\live
2. Change the physical folder that is used by the live site at "Site Properties". To be exact, the property is called "Directory" under "live Pages Location" at "Site Properties", e.g. c:\inetpub\wwwroot\mysite\live
3. Create a site or a virtual application in IIS that points to your new live directory (c:\inetpub\wwwroot\development\mysite\live). This site or virtual directory will be used to preview your development work.
4. At "Site Properties" change site to be in "live" mode and make sure that "Force Assemble" is not checked.Start working with objects and assemble pages normally.
!!! IMPORTANT : DON'T ASSEMBLE WHOLE SITE OR TEMPLATE IF ONLY A FEW OBJECTS NEEDS TO BE REASSEMBLED. Instead, if page objects reassembly is required -- then reassemble only the affected page or pages. If reassembly template objects is required, pick a page that belongs to that template and assemble only that page (Template objects are shared by template pages so one assembled page is enough).

Where can I download or view the User Guide for QP7?
The User Guide for QP7 is located here: http://guide.quantumart.com We're continually updating it, your comments are quite welcome.

Whether QP 7 Framework will work with Microsoft SQL 2005 ?
SQL 2005 should be fully compatible with QP 7 Framework.
The only thing to be aware of is that once the database is used by SQL 2005 it will be very difficult to go back to 2000.

Problems with downloading files in the backend e.g. exported articles
Investigation:
Sometimes, there is a problem with downloading a file in the backend e.g. exported articles
Workaround:
Increase AspbufferingLimit in IIS metabase ( There is a setting in IIS metabase, AspBufferingLimit, that sets the size of the buffer when Response.Buffer = True )
=>If increase in the size of the max buffer size in IIS metabase is NOT opted, QA support team should be contacted for a hot fix.

|