Implementing a custom Rendering Extension in SSRS in SharePoint integrated mode without coding

A rendering extension is a component or module of a report server that transforms report data and layout information into a device-specific format. SQL Server Reporting Services includes six rendering extensions: HTML, Excel, Word, CSV or Text, XML, Image, and PDF.
We can create additional rendering extensions to generate reports in other formats.

We can modify the rendering format of a Reporting Services report by making changes to the RSReportServer.config file located at :

In native mode the files are located at:
C:\Program Files\Microsoft SQL Server\MSRS12.MSSQLSERVER

In SharePoint integrated mode the files are located at:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\WebServices\Reporting

More details can be found here

<Extension Name=”TXTspaceDelimited” Type=”Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering”>
<OverrideNames>
<Name Language=”en-US”>TXT (Space Delimited Text File)</Name>
</OverrideNames>
<Configuration>
<DeviceInfo>
<FieldDelimiter xml:space=”preserve”>?</FieldDelimiter>
<NoHeader>true</NoHeader>
<FileExtension>txt</FileExtension>
<ExcelMode>False</ExcelMode>
<Encoding>ASCII</Encoding>
</DeviceInfo>
</Configuration>
</Extension>

If we want to add or modify the rendering format in a Reporting Services report in native mode, the RSReportServer.config file is still the way to go as described above.

But for Reporting Services in SharePoint-integrated mode, this can be done by using the PowerShell cmdlets for Reporting Services SharePoint Mode, specifically, the New-SPRSExtension cmdlet. The powershell details:

New-SPRSExtension -identity <GUID ID value of the Reporting Services service application> -ExtensionType “Render” -name “TXTspaceDelimited” -TypeName “Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering” -ServerDirectives “<OverrideNames><Name Language=’en-US’>TXT (Space Delimited Text File)</Name></OverrideNames>” -ExtensionConfiguration “<DeviceInfo><FieldDelimiter xml:space=’preserve’>?</FieldDelimiter><NoHeader>true</NoHeader><FileExtension>txt</FileExtension><ExcelMode>False</ExcelMode><Encoding>ASCII</Encoding></DeviceInfo>”

We have to change the double quotes to single quotes in XML tags because the parameter values used in the PowerShell cmdlet are surrounded by double quotes.
This eliminates parsing errors when running the command.

TheGUID value comes from the ID value of the Reporting Services service application when you run the Get-SPRSServiceApplication PowerShell cmdlet as follows:

Get-SPRSServiceApplication

We need to restart IIS on the application server running the Reporting Services service application for the changes to take effect.
To verify, reload the Reporting Services report and check the list of Export options.
The rendering format we’ve added should now be listed as an option.

Reference 1

Reference 2

SharePoint Foundation Web Application Service Stuck at Starting

Navigate to the node using remote desktop and open command prompt as administrator.

Navigate to the bin directory containing stsadm:

cd C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\BIN\

start the service using:

stsadm -o provisionservice -action start -servicetype spwebservice

You will get operation completed successfully message. Now issue iisrest /noforce.

 

SharePoint List Attachments over 50MB need more than an increase in Maximum Upload Size – httpRuntime maxRequestLength

Reference

The SSRS report (SharePoint integrated mode) was giving error. While researching for this error came across the above article.

1.Connect to Central Admin
2.Navigate to Central Admin > Application Management > Web Application General Settings
3.Select your web application
4.Set the Maximum Upload Size value to “X” MB and hit OK.
5.Repeat steps 6-7 for all zones for your web application on all servers hosting the web application role
6.Open the web.config
7. Replace the following line:<httpRuntime maxRequestLength=”51200″ />with<httpRuntime maxRequestLength=”{X * 1024}” />

if you’re using SQL storage for your SharePoint content, the maximum useful value for the maxRequestLength should be 2097152 (2GB in kilobytes = 2 * 1024 * 1024). Keep in mind that other limits may affect large uploads, most notably:

SharePoint 2013 correlation id not found on SharePoint farm – Enable job Diagnostic Data Provider: Trace Log and query view ULSTraceLog

Today for one of the SSRS report (SharePoint integrated) the export to Excel failed and it gave the correlation id which we were unable to find on the various nodes of SharePoint farm.

So using Central Admin we enabled job “Diagnostic Data Provider: Trace Log” by navigating to Monitoring => Review Job definitions. On SQL server execute following query against view Logging.dbo.ULSTraceLog:

SELECT [MachineName],
[Area],
[Category],
[Level],
[EventId],
[Message],
[CorrelationId]
FROM ULSTraceLog
WHERE [CorrelationId] = ‘9990009d-cccc-xxxx-07xx-xx99f9999xx9’

sharepoint server User Profile service error – Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.

Reference 1 and Reference 2

During a review of the SharePoint farm health, we saw a lot of these errors in the event logs. The farm itself was still functional, but these errors were filling the event logs. The account is question was the same one that was used for the IIS website application pools.

  1. Stop the relevant application pools
  2. Stop the IIS Admin Service (in services.msc)
  3. Stop the Web Server
  4. Provision logon locally rights to DOMAIN\AppPoolAccount 

Now open a command window (Start-Run-> type “CMD” ) and in the window type the following:

net localgroup administrators DOMAIN\AppPoolAccount /add

runas /u:DOMAIN\AppPoolAccount /profile cmd

After the second command, you will be prompted to enter the password of the DOMAIN\AppPoolAccount and when you hit enter it will launch a new window. In the window type the following to confirm the user profile directory

echo %userprofile%

5. Launch the User Profiles dialog or check “C:\users” to verify that the directory for your application pool account ID has been created.

Close the second command window, and in the original one type the following to remove the app pool account from the administrators group.  For whatever reason it only needed to be there to create the local profile and it’s not best practices or recommended that you leave the account as an admin on a production farm.

net localgroup administrators DOMAIN\AppPoolAccount /delete

7. Exit the command window

8. Start the Web Server

9. Enable and then Start the IIS Admin Service.

 

Recurring Application server DCOM error The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {000C101C-0000-0000-C000-000000000046} and APPID {000C101C-0000-0000-C000-000000000046} to the user

Reference

First change Component Service Owner and Permission

In the DCOM Config dialog box, you noticed that the settings are grayed out. In order to enable those settings, perform the following registry modification.

  1. Open Registry Editor by typing “regedit.exe” in Start > Run.
  2. Navigate and select the key “[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{000C101C-0000-0000-C000-000000000046}]”
  3. Right click and select Permissions.
  4. In the popup windows, click Advanced.
  5. In the Advanced Security Settings windows, select Owner tab and change the owner to Administrators. Click OK to close the window.
  6. In the Permissions screen, select Administrators and check Full Control. Click OK to close the screen.
  7. Close the registry editor.
  8. Restart the machine.

This error is being logged into the System event logs in Event Viewer due to inadequate permission for the farm admin account on the DCOM component 000C101C-0000-0000-C000-000000000046. In order to change the permission settings, perform the following steps:

  1. Open Component Service by clicking Start > Administrative Tools > Component Services.
  2. Navigate and expand the node Component Services > Computers > My Computer > DCOM Config.
  3. Right Click the sub node “000C101C-0000-0000-C000-000000000046” and select “Properties”.
  4. On the Properties dialog box, select Security tab. In most cases you will notice that the settings are grayed out. This is because the logged in user doesn’t have enough permissions on this component to change the settings. In order to provide this permissions, perform the steps described above “Change Component Service Owner and Permission”. You may need to restart the server after doing this.
  5. Once you set up the permission mentioned in previous step, in the Launch and Activation Permissions section in Security tab, select Customize option and click Edit.
  6. In the popup window, add the farm admin user account and check Local Launch and Local Activation permissions. In case everything is checked, uncheck the Remote launch and Remote Activation.
  7. Restart IIS and SP Timer. If possible, restart the server itself.