cancel
Showing results for 
Search instead for 
Did you mean: 

VS2005 CR deployment issues

Former Member
0 Kudos
98

I'm working on an project that requires me to upgrade an existing Crystal Reports .NET 1.1 applications to .NET 2.0 using VS2005 Professional. The conversion process runs smoothly, and the application works properly on my local machine, but when I deploy the application to a remote test server, there are many errors when trying to create the required reports. The test server is a Windows 2003 Server, with both .NET 1.1 and .NET 2.0 installed. Also, I installed CRRedist2005_x86.msi on the server.

Following is a snapshot of the error produced:

Event Type: Error

Event Source: ASP.NET 2.0.50727.0

Event Category: None

Event ID: 1334

Description:

An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/1330659977/Root

Process ID: 5248

Exception: System.TypeInitializationException

Message: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.

StackTrace: at CrystalDecisions.CrystalReports.Engine.ReportDocument.Finalize()

InnerException: System.IO.FileNotFoundException

Message: Retrieving the COM class factory for component with CLSID {11BD5260-15B6-412D-80DB-12BB60B8FE50} failed due to the following error: 8007007e.

StackTrace: at CrystalDecisions.CrystalReports.Engine.ReportDocument..cctor()

On the web page, the following exception is visible:

The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.

I'm guessing it has something to do with the fact that the version of Crystal Reports on the server is 9.1.5000.0, and the application being deployed uses 10.2.3600.0, but cannot find any viable solution to the situation.

Any help would be greatly appreciated as I'm EXTREMELY confused. Thanks.

View Entire Topic
former_member184995
Active Contributor
0 Kudos

You stated you deployed the CRRedist2005_x86.msi which should install the 10.2 assemblys.

Were you logged on as the administrator?

If you check in the GAC (windows\assembly) do you see only the 9.1 references for the crystal files or do you see both 9.1 and 10.2?

Former Member
0 Kudos

Yes, I see both versions of CR in the GAC. Also, I have administrator privileges.

Former Member
0 Kudos

Hi, Christopher;

There must be something missing. Can you try building a setup package using the merge modules instead:

https://smpdl.sap-ag.de/~sapidp/012002523100005853292008E/cr_net_2005_mm_mlb_x86.zip

Instructions are contained within.

Regards,

Jonathan

Former Member
0 Kudos

OK, so I build the solution, then I copy it over to the web server. Do I need to place it in a specific folder or drive prior to running?

Thanks for the info up to this point, it's been very helpful so far.

Former Member
0 Kudos

Hi, Christopher;

No, it doesn't matter where you run the deployment package from.

Regards,

Jonathan

Former Member
0 Kudos

During installation, it's installing in a drive that I don't want it to install into, in a non-existent directory "Default Web Site", and I'm getting multiple errors:

"Module \Program Files\Business Objects\2.7\bin\ExportModeller.dll failed to register." among other dll's.

I built it as a web project, should I have made it a regular application? Are there other setting in VS2005 that I should know about in order to install this in the proper place, and to get these files to register?

Thanks in advance.

Christopher

Former Member
0 Kudos

Hi, Christopher;

The application is web based, correct?

There are options you can set in the VB setup project to deploy the project to a different Web location, but that has no impact on where the Crystal Reports files will be installed. If you ignore past the errors, does the install proceed?

Regards,

Jonathan

Former Member
0 Kudos

Yes it does, however the web app still does not run. Any other solutions?

Former Member
0 Kudos

Have a look at the web.config file in the directory of the application. Make sure it contains the correct 10.2.3600.0 references, and not the 9.1 versions.

Regards,

Jonathan

Former Member
0 Kudos

Along with Jonathan's suggestion I would request you to check your application's bin folder and make sure that there is no older dlls of Crystal mainly CrystalDecicions.Web/Windows,

CrystalDecisions.Shared and

CrystalDecisions.CrystalReports.Engine

If they exist just remove them form the folder and put in any other location outside the application just to make sure that the application do not use them.

Hope that helps!

AG.

Former Member
0 Kudos

Moreover can you also make sure that your application is running under 2.0 Framework? TO confirm it you need to go to the iis and right click on the application's virtual directory and go to properties -> ASP.NET tab and select the 2.0 framework.

Hope it helps you.

Regards,

Atanu.

Former Member
0 Kudos

Here we go...

The web.config file doesn't even reference Crystal Reports...at least I can see where it would.

When the application was built on my local machine, I referenced the CR dll's, I didn't copy them into the bin folder.

Lastly, IIS is in 2.0 version for this application.

I should also mention that there are other applications that were built with VS.NET 2003, CR IX, that are on the web server which, once I installed the distributable file, would not work.

This project must be converted to .NET 2.0, so I can't undo the changes.

former_member208657
Active Contributor
0 Kudos

If your web.config file doesn't reference Crystal Reports assemblies then there is something wrong with your project. There is a chance you might not be using the runtime files you think you are using. You'll need to find out what runtime files your application has loaded on your development and production systems.

You can find out this info by using a utility called [modules|https://smpdl.sap-ag.de/~sapidp/012002523100006252802008E/modules.zip] from our download site.

Run this while your application is executing and look at the w3wp.exe or aspnet_wp.exe processes. You'll want to see what version of CrystalDecisions.xxx.dll are loaded. If you find anything but 10.2 files then you aren't using what you expected.

Here is an example of a web.config file from a new project using Crystal Reports for Visual Studio .NET 2005.

<?xml version="1.0"?>
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use
    the Website->Asp.Net Configuration option in Visual Studio.
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->
<configuration>
	<appSettings>
		<add key="CrystalImageCleaner-AutoStart" value="true"/>
		<add key="CrystalImageCleaner-Sleep" value="60000"/>
		<add key="CrystalImageCleaner-Age" value="120000"/>
	</appSettings>
	<connectionStrings/>
	<system.web>
		<!-- 
            Set compilation debug="true" to insert debugging 
            symbols into the compiled page. Because this 
            affects performance, set this value to true only 
            during development.
        -->
		<compilation debug="true">
			<assemblies>
				<add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.ReportSource, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.Enterprise.Framework, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
				<add assembly="CrystalDecisions.Enterprise.InfoStore, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies></compilation>
		<!--
            The <authentication> section enables configuration 
            of the security authentication mode used by 
            ASP.NET to identify an incoming user. 
        -->
		<authentication mode="Windows"/>
		<!--
            The <customErrors> section enables configuration 
            of what to do if/when an unhandled error occurs 
            during the execution of a request. Specifically, 
            it enables developers to configure html error pages 
            to be displayed in place of a error stack trace.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		<httpHandlers><add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></httpHandlers></system.web>
</configuration>

Former Member
0 Kudos

Tried to reconfigure the web.config file with your suggestions...no luck, same error.

I un-installed the Redist_X86 files, removed the web.config entries, re-ran the web app. and received this exception: Could not load file or assembly 'CrystalDecisions.Shared, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.

When I had the Redis_X86 installed, I received this error:

Message: The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception.

StackTrace: at CrystalDecisions.CrystalReports.Engine.ReportDocument.Finalize()

After running the merge file project, I still received the same error. Also, during the installation process of the merge file project, 19 dll's could not be registered.

After changing the web.config file to add the new assemblies and httphandler, I was receiving the same error.

This is very frustrating. It shouldn't be this difficult.

Any other suggestions?

For some reason, CR 10.2 is

Former Member
0 Kudos

How about copying the web.config from dev machine to production machine in same folder structure? Taking backup of the old web.config would be a better idea before proceeding..

Works??

Former Member
0 Kudos

The production version is .NET 1.1, and the test (so far) is 2.0. Even the 1.1 version assembly section in the web.config file doesn't reference any CR assemblies.

When the application is being built in VS2005, and I add a .NET reference, where in the built project is this information? I have many references that I've added, but aren't in the web.config file.

Former Member
0 Kudos

By the way...no it didn't work.

Former Member
0 Kudos

Hi, Christopher;

In .NET, the solution explorer, right click on the Project, and choose Property Pages. You can see the references from there. If there are any that are not version 10, they should be removed.

Regards,

Jonathan

Former Member
0 Kudos

What I would like to know is if there is a place to look after it's built, and placed on the web server?

former_member208657
Active Contributor
0 Kudos

Yes. You would look in the web.config file for the references. If you don't see Crystal files included there it is wrong. You will end up in the situation you are in now where the project picks up whatever it finds. Which is why I think you are in this mess.

Create a new web project on your dev system and add the Crystal Report viewer to a web form. Then look at the web.config file and you'll see <add assembly> tags for CrystalDecisions.