Please review this information concerning redistribution of Spread for ASP.NET with your application.
Server Requirements
You must deploy to a Microsoft Internet Information server.
Server Files
Place the assemblies that come with Spread for ASP.NET in either your server's global assembly cache (GAC) or in your application directory's \bin folder under the wwwroot directory on your server.
Place the following assemblies on your server:
- FarPoint.Web.Spread.dll
- FarPoint.CalcEngine.dll
- FarPoint.Excel.dll
- FarPoint.PDF.dll
- FarPoint.Web.Chart.dll (if you use the Chart control or Sparklines)
- FarPoint.Web.Spread.Extender.dll (if you use the extender classes)
- System.Web.Extensions.dll (if you use the FarPoint.Web.Spread.Extender.dll)
- AjaxControlToolkit.dll (if you use the FarPoint.Web.Spread.Extender.dll)
- FarPoint.Mvc.Web.Spread.dll (if you use Spread in an MVC3 project)
Place the fp_client folder (installed originally in \Program Files\Common Files\FarPoint Technologies) and its subfolders provided with Spread for ASP.NET under your server's wwwroot directory, or, if you wish to put it elsewhere, set up a virtual directory in IIS Manager to point to the location of that folder's contents.
The fp_client folder can also be placed in the web application directory. The following code would need to be added to the web config file. For example:
<?xml version="1.0"?>
<configuration>
<system.web>
...
</system.web>
<appSettings>
<add key="fp_client" value="fp_client" />
</appSettings>
</configuration>
Be aware that Spread for ASP.NET creates a Web server control that serves up HTML pages for clients and it also puts HTC files in a directory on the client machine for client-side scripting capability.
Permission Requirements
If you use the Spread control on medium trust web sites, you need to add SerializationFormatter and Reflection permissions to the machine config file, web_mediumtrust.config. The SecurityPermission needs the UnmanagedCode and SerializationFormatter flags. For example:
<IPermission class="SecurityPermission" version="1" Flags="Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration, UnmanagedCode, SerializationFormatter"/>
<IPermission class="ReflectionPermission" version="1" Unrestricted="true" Flags="ReflectionPermissionFlag.MemberAccess"/>