Sending to PDF Gives 500 Internal Server Error
Product
OrgPublisher
Applicable Release:
All
Problem
PDF Gives 500 Internal Server Error
Solution
When selecting the send to PDF option from a published Silverlight chart or Echart, a 500 error may occur. Generally there are 2 reasons, either server permissions are not correctly configured to deliver the PDF to the client or the PDF driver has not been installed on the server hosting the Echart or Silverlight chart.
- Install the PDF driver, go to the location where OrgPublisher is installed, most likely the default location c:\program files(x86)\OrgPub[XX], and look for a “pdfdrv.exe”. Run the PDF driver on the computer/server hosting the published chart.
- Check the configuration permissions, see below:
On the server hosting the published chart:
- Bring IIS up.
- Click on “Application Pools” and locate the application pool that is handling your EChart folder. In my example, note that ECharts is handled by an application pool called EChartPool:
- Make sure that EChartPool’s identity is set to “ApplicationPoolIdentity”. If you are on a 64-bit platform, ensure that “Enable 32-Bit Applications” is set to True:
- On The EChart level, ensure that the Anonymous Authentication is enabled – click on EChart, then double click on “Authentication”.
- Then click on “Anonymous Authentication” and click on “Edit” in the Actions pane, and select “Application pool identity” for the authentication credentials, then click OK:
- Next, you’ll have to add the application pool identity to the ECharts folder on the NTFS level. To do that, navigate to the folder in Windows Explorer, right-click it and select “Properties”, and click on the “Security” tab:
- Click on the “Edit” button, then click on the “Add” button.
- Click on the “Locations” button and select the machine name (at the top of the list), and click OK.
- Then type in “iis apppool\<your app pool name>”. In my case it would be: iis apppool\EChartPool
- Then click the “Check Names” button and it should resolve itself. Then click OK.
- You should now see the app pool name in the list: