Troubleshoot: Difference between revisions

From Crystal Manager for Sage CRM
No edit summary
No edit summary
Line 237: Line 237:


If you go to "Internet Information Services Manager" on your server you should see your "Web Sites" folder as well as a "Web Service Extensions" folder.  
If you go to "Internet Information Services Manager" on your server you should see your "Web Sites" folder as well as a "Web Service Extensions" folder.  
In that folder there are some services listed there (depending on what you have installed) and you should have "ASP.NET v2.0.50215" listed.  
In that folder there are some services listed there (depending on what you have installed) and you should have "ASP.NET v4.x" listed.  
Make sure the service is set to "Allow".
Make sure the service is set to "Allow".



Revision as of 09:23, 8 March 2017

1. External IP addresses cannot run reports

Check the Server error log. If you see 500 errors there is a chance that the server request (which is made within the iis process) is not allowed and so is returning 500 errors.

To resolve this open the web.config file and set the CRMCodedPath setting to be something like "http://servername/CRM/". (Note: you may need to add this setting)

For example

  <add key="CRMCodedPath" value="http://localhost/crm/"/>

One message you might see that shows this is when you use https

 Message: Exception Msg: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.


2. NT Authenication Error

Depending on the IIS setup you may need to add in a windows users details to the web.config file. This usually occurs when IIS requires authentication.

Set the following values to be a relevenat user. It is best to ensure that the users password does not expire.

   <add key="CRMNetworkUser" value=""/>
   <add key="CRMNetworkUserPassword" value=""/>
   <add key="CRMNetworkDomain" value=""/>
   //CRMNetworkUserAuthType value options are "Basic" or "Digest"
   <add key="CRMNetworkUserAuthType" value="" />

(Note: you may need to add these settings)

3.Images/Graphs Not appearing in Reports

On the server the image is created in a temp folder E.G.

 C:\Windows\Temp\cr_tmp_image__CRM71_CustomPages_CRViewer_server_serverport

But deleted immediately once it has been downloaded.

You need to check permissions on this folder


If you continue to have issues check the IIS log file. The location of the IIS log files can be located in IIS.

Next in IIS

  • Click on 'Handler Mappings'
  • On the right side under 'Actions' I selected 'Add Managed Handler'
  • Request Path: 'CrystalImageHandler.aspx'
  • Type: 'CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'
  • Enter Name as 'Crystal Reports Image Handler'
  • Press OK



4. Button Groups

Crystal Manager creates button groups in the system.

If you are running Sage 300 (Accpac) integration then this new button group may override existing groups.

To resolve delete the empty button group.



5. Windows Authentication

Within the Crystal Manager folder (CustomPages/CRViewer) in IIS click on the "Authentication" button.

If you see "Windows Authentication" enabled, disable this.



6. Wrong web.config file being used

Depending on the IIS configuration sometimes it can use the parent web.config file.

If you can delete or rename the parent web.config file.

Otherwise an unverified fix is as follows:

The attribute inheritInChildApplications must be placed in the <configuration> section of the web.config.

It looks like this:

 <configuration>
   <location inheritInChildApplications="false">
     ...
   </location>
     ....

7. System.Web.Compilation

You get a compilation error after some time. This is a Trust Level issue. Check the user that the w3svc process is running under.

For IIS 6 look at

 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/1f7959af-2eac-4418-91a3-56006ea6eb07.mspx?mfr=true

and

 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a55fb31b-5b42-476d-9cae-050ab3fae307.mspx?mfr=true

For IIS 7 look at

 http://technet.microsoft.com/en-us/library/cc753658%28v=ws.10%29.aspx

8. Invalid field name

Error when adding new report

 Source: Analysis Server
 Message: Invalid field name. sample report {F91D3E21-5DDB-45D0-8826-8E7CFA07C233}.rpt
 Stack trace: at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

The issue is that there is a static parameter that needs to have the "Show on viewer" option changed from "Editable" to "Do not show"


9. Move CR Viewer into its own application pool

In some instances this can make sense to do. There is a change in the "CRReportsListUser" list though that needs to be applied.

In this list the field "Description" links to the "CRViewer/Prompt.asp" (Custom File setting) page. The ASP page cannot live outside of CRM however. You need to move the prompt.asp page to the CustomPages folder and change the Custom File value to be just "Prompt.asp".

If you do not do this you will see an error on the screen

 Not licensed or not registered correctly
 In IIS check the application pool that your custom site is running in and make sure it is the same application pool as CRM.

Within the prompt.asp page also you would have to change line 62 from

 document.EntryForm.action="Default.aspx?crre_crreportsid=<%=Request.QueryString('crre_crreportsid')%>&SID=<%=Request.QueryString('SID')%>";

to be

 document.EntryForm.action="CRViewer/Default.aspx?crre_crreportsid=<%=Request.QueryString('crre_crreportsid')%>&SID=<%=Request.QueryString('SID')%>";

10. Report load slow

If the report is slow to load you may need to edit the report (.rpt) file itself and turn of the default printer.

To do this open the report and select "File" -> "Page Setup".

From the dialog that opens check the "No Printer" otion.

Click the "Ok" buttons and save the report.


11. Bobj is undefined

Issue: Missing (or inaccessible) “crystalreportviewers13″ folder in the C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727.

Fix : Copy the entire ‘crystalreportviewers13′ from crystal report installed path. “D:\Program Files\Common\4.0″ to C:\inetpub\..

Enable access to the aspnet_client folder in IIS ****ENSURE THAT THE FOLDER IS ENABLED AS AN ASP.NET APPLICATION AND THAT THE APPLICATION POOL IS THE SAME AS CRM'S

This is helps in resolving the issue of accessing the crystal reports from the web application outside the network.

Quick check list for this issue:

1. Check CR is installed correctly. Delete all CR folders after un-installation. Especially under IIS. (C:\inetpub\wwwroot)

2. Install complete version of CR’s.

3. Check whether CR web site is created under IIS.

4. Check for missing folder C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727

5. Under Application Pools – Enable 32 Bit applications to TRUE (if it is integrated mode)

Ref: http://gisprog.wordpress.com/2012/03/19/report/

If this is still unresolved we recommend using a http sniffer tool like fiddler to help diagnose the issue (you will see 404 or 500 errors usually which highlight where the problem is)

  • HTTP Error 500.23 - Internal Server Error
 An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Ref: https://social.technet.microsoft.com/Forums/sqlserver/en-US/aa2f52ba-dd8b-4f8f-8f15-0f9f765c3eee/http-error-50023-internal-server-error-an-aspnet-setting-has-been-detected-that-does-not-apply?forum=sqlreportingservices

You may need to put the follow entry in your Web.config

   <system.webServer>
     <validation validateIntegratedModeConfiguration="false" />
   </system.webServer>



12. Could not load file or Assembly...

When first trying to use the system you see this error

This is caused by the IIS application pool not having "Enable 32-Bit Applications" enabled. Set this to be True (you may need to restart the application pool and/or IIS)


13. The table .... could not be found. Error in File ....

If you see this issue check the SQL SA user is not locked out.

This can happen if the "Enforce password policy" checkbox is checked.

Un-check this and unlock the user in SQL Enterprise Manager to resolve.


14. Reports not opening (hanging) -

Check is Crystal itself is installed and whether it is registered. If not a register dialog may appear and this seems to affect the running of the reports.

If you cannot register you need to uninstall Crystal from the server.



15. 404 pages appearing

This can be caused by upgrading Sage CRM (a patch even). In some instances IIS is reset to now allow ASP.Net by the patch. To resolve follow these steps:

If you go to "Internet Information Services Manager" on your server you should see your "Web Sites" folder as well as a "Web Service Extensions" folder. In that folder there are some services listed there (depending on what you have installed) and you should have "ASP.NET v4.x" listed. Make sure the service is set to "Allow".

Ref: http://forums.asp.net/t/894724.aspx/1



16. Random hanging when running reports

In the registry key (on the server) edit

 HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\Server\PrintJobLimit  

and change it (from 75) to -1

 HKEY_LOCAL_MACHINE/SOftware/Crystal Decisions/Report Application Server/InprocServer/ReportDocument

Change the value of the field MaxNumOfRecords to -1(For Unlimited No. of records)

  • Note that the location of the key in the registry may vary depending on how SAP change things.

Notes from our partners Kastech Consulting Inc http://www.kastechco.com/

Kastech saw sporadic complus errors in the event log which lead to this solution.

The following registry key can be tweaked to increase the amount of desktop heap. Please double the second and third numeric values, so the SharedSection numbers look like this: sharedSection =1024,6144,1024 as a test.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows\ SharedSection=1024,3072,512

The first SharedSection value (1024) is the shared heap size common to all desktops. This includes the global handle table, which holds handles to windows, menus, icons, cursors, and so forth, and shared system settings. It is unlikely that you would ever need to change this value.

The second SharedSection value (3072) is the size of the desktop heap for each desktop that is associated with the "interactive" window station <WinSta0>. User objects like hooks, menus, strings, and windows consume memory in this desktop heap. It is unlikely that you would ever need to change this second SharedSection value. Each desktop that is created in the interactive window station uses the default 3072-KB desktop heap.

The third SharedSection value (512) is the size of the desktop heap for each desktop that is associated with a "noninteractive" window station. If this value is not present, the size of the desktop heap for noninteractive window stations will be same as the size specified for interactive window stations (the second SharedSection value).


17. Retrieving the COM class factory...

To resolve you need to restart IIS as this instance does not seem to be picking up the newly installed run time.



18. Invalid TLV record

This happens if you try run the sage crystal reports integration after installing the SAP runtime (that ships with Crystal Manager)

This is because the runtime updates crqe.dll - So both the classic and crystal manager cannot be supported on the one server.

Ref: http://stackoverflow.com/questions/11149413/invalid-tlv-record-when-executing-crystal-reports-in-c-sharp


19. The server committed a protocol violation

Add the following to your web.config file (just under the configuration element)

 <system.net>
   <settings>
     <httpWebRequest useUnsafeHeaderParsing="true" />
   </settings>
 </system.net>

20. Request Timeout

On slower servers you could see a server timeout. To increase this set the 'executionTimeout="300"' atrribute in the web.config httpRuntime node

 <httpRuntime maxRequestLength="1048576" requestValidationMode="2.0" executionTimeout="300" />

21. 404 on ASP.Net pages

ASP.net is not installed or not installed correctly. To install run the following from the command line (run as admin)

 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

In windows server 2012 you may need to do the following



22. Maximum request length exceeded

Ref: http://stackoverflow.com/questions/3853767/maximum-request-length-exceeded

If you are using IIS for hosting your application, then the default upload file size if 4MB. To increase it, please use this below section in your web.config -

 <configuration>
   <system.web>
       <httpRuntime maxRequestLength="1048576" />
   </system.web>
 </configuration>

For IIS7 and above, you also need to add the lines below:

<system.webServer>
  <security>
     <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
     </requestFiltering>
  </security>
</system.webServer>

Note: maxAllowedContentLength is measured in bytes while maxRequestLength is measured in kilobytes, which is why the values differ in this config example. (Both are equivalent to 1 GB.)

23. Setup IIS error reporting

By default IIS will only report a generic 500 error. In terms of troubleshooting this is next to useless. We must configure IIS to report out the problem. We do this as follows:

Open IIS

Navigate to the folder/application you are using (in our example we use the CRViewer)

Click on ASP to open this option

Expand the options and set the "Send Errors to Browser to be true"

Next select the folder/application again in IIS

Select the Error Pages option

On the right hand side of the screen we have "Edit Feature Settings" - select this

On the dialog select the "Detailed Errors" option

Now in the browser you should start seeing any errors.

24. 500 error: Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.

This is because ASP.Net was not completely installed with IIS even though I checked that box in the "Add Feature" dialog. To fix this simply run the following command at the command prompt

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

If I had been on a 32 bit system, it would have looked like the following:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Fix found via ref: http://stackoverflow.com/questions/6846544/how-to-fix-handler-pagehandlerfactory-integrated-has-a-bad-module-managedpip



SAP Crystal Reports, developer version for Microsoft Visual Studio: Updates & Runtime Downloads

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads



Parser Error

Within IIS convert the CRViewer folder to an application



Low level debugging

Get the url of the report (from the browser when you open the report).

EG

 http://crm.servername.com/CRMDemo/CustomPages/CRViewer/Default.aspx?SID=123455666645&Key0=71&Key1=28&Key2=30&Key4=1&Key7=6&Key71=2&F=CRViewer/NewWindow.aspx&J=CRViewer/Default.aspxrptid=6005&btnid=6000&SID=123455666645&Key0=71&Key1=28&Key2=30&Key4=1&Key7=6&Key71=2&J=CRViewer%2fNewWindow.aspx&rptid=6005

Change the url by adding on "&tmpdbg=Y" to the url

EG

 http://crm.servername.com/CRMDemo/CustomPages/CRViewer/Default.aspx?SID=123455666645&Key0=71&Key1=28&Key2=30&Key4=1&Key7=6&Key71=2&F=CRViewer/NewWindow.aspx&J=CRViewer/Default.aspxrptid=6005&btnid=6000&SID=123455666645&Key0=71&Key1=28&Key2=30&Key4=1&Key7=6&Key71=2&J=CRViewer%2fNewWindow.aspx&rptid=6005&tmpdbg=Y

This will out put data (something like below)

 start Page Load
 Tab Group set up
 Reading Request.QueryString[rptid]
 Report Id (from rptid):6005
 getting report record

EVENT Logging

Within the web.config file set to "ApplicationEventLog" to True to turn on

   <add key="ApplicationEventLog" value="True"/>
  • Permissions are required to create the logs so assuming the IIS user does not have permission we...

Go to registry editor (regedit), locate key

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application

and create a new key with the source name "CRMTogetherCRViewer2" You may need to add a string type to the key (change the .Net version number as required)

   EventMessageFile=C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll



Not registered or not licensed correctly

In IIS check the application pool that your custom site is running in and make sure it is in the same application pool as CRM

  • this is a CRM error (and not a license error in Crystal Manager

To resolve this open IIS and check the application pool for CustomPage/CRViewer is the same as CRM

If not click select to change


File:Example.jpg

Useful links:

 Configure Crystal Reports 2008 for ASP.NET on IIS
 Ref: http://blog.aaziz.org/configure-crystal-reports-2008-for-aspnet-on-iis
 Crystal report images in toolbar not displaying and export/print functionality not working in asp.net
 Ref: http://www.aspdotnet-suresh.com/2012/01/crystal-report-images-in-toolbar-not.html

Update to .Net4.5 (and later) on server breaks system

To fix this open IIS 'aspnet_client\system_web' folder and create a folder with the .net version you now have (you may need to check the version)

   To find .NET Framework versions by viewing the registry (.NET Framework 1-4)
   On the Start menu, choose Run.
   In the Open box, enter regedit.exe. You must have administrative credentials to run regedit.exe.
   In the Registry Editor, open the following subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP.

Then copy the crystalreportsviewers13 folder into this new folder

  • To find out what versions of .Net that you have open windows explorer and the folder
 C:\Windows\Microsoft.NET\Framework