Specificare il percorso in cui GridWeb archivia i file temporanei
sulla cache dei file
Quando la modalità di sessione di GridWeb è ViewState, archivia i file di sessione temporanei all’interno della directory di base dell’applicazione. A volte, non è corretto archiviare lì i file di sessione temporanei perché la directory di base dell’applicazione potrebbe non disporre delle autorizzazioni di scrittura su di essa. In tali casi, GridWeb genera un’eccezione di questo tipo
[UnauthorizedAccessException: Access to
the path 'D:</span>inetpub</span>wwwroot</span>AsposeExcelTest</span>gwb_tempGridWeb1' is denied.]
La soluzione al problema precedente è concedere l’accesso in scrittura alla directory di base dell’applicazione o modificare il percorso dei file della sessione temporanea di GridWeb con accesso in scrittura utilizzando la proprietà GridWeb.SessionStorePath. Questo percorso dovrebbe essere relativo alla directory di base dell’applicazione.
Specificare il percorso in cui GridWeb archivia i file di sessione temporanei
Il codice di esempio seguente specifica il percorso in cui GridWeb archivia i file di sessione temporanei.
sulla cache delle immagini
quando ci sono forme/immagini nel foglio di lavoro, GridWeb salverà tutte le forme/immagini in un percorso della cache
il percorso della cache predefinito èSystem.Web.HttpContext.Current.Server.MapPath("/acwcache")
anche noi possiamo usareGridWeb.PictureCachePath per impostare questo percorso su un percorso specifico.
quando apriamo una pagina, GridWeb risolverà l’URL dell’immagine della richiesta e otterrà il flusso dell’immagine dalla cache tramite l’ID dell’URL.
ad esempio, se l’indirizzo della tua pagina èhttp://ip/mygridwebapp/test.aspx
l’URL di richiesta dell’immagine generato da GridWeb sarà http://ip/mygridwebapp/test.aspx/acw_image/imageid.
a volte le forme/immagini non vengono caricate durante l’utilizzoURL amichevole.
è necessario controllare la richiesta dell’URL dell’immagine.
la normale richiesta di immagine sarà come:http://ip/mygridwebapp/test.aspx/acw_image/imageid
ma la tua richiesta va così :http://ip/mygridwebapp/test/acw_image/imageid
se usi FriendlyUrl devi filtrare la richiesta dell’URL dell’immagine per GridWeb.
quindi il server di controllo GridWeb può ottenere e risolvere la richiesta e trovare il flusso di immagini dal percorso della cache.
ad esempio supponiamo che l’URL della tua pagina sia questo:http://ip/mygridwebapp/test.aspx
quindi il codice seguente è una soluzione alternativa per risolvere tale problema.
//write your custom url resolver:MyWebFormsFriendlyUrlResolver
public class MyWebFormsFriendlyUrlResolver : WebFormsFriendlyUrlResolver
{
public MyWebFormsFriendlyUrlResolver() { }
public override string ConvertToFriendlyUrl(string path)
{
if (!string.IsNullOrEmpty(path))
{//filter your GridWeb related page,here we use 'mygridwebapp' to identify as we assume your page is:http://ip/mygridwebapp/test.aspx
if (path.ToLower().Contains("mygridwebapp"))
{ // Here the filter code
return path;
}
}
return base.ConvertToFriendlyUrl(path);
}
}
//in RoutConfig.cs set the custom url resolver:MyWebFormsFriendlyUrlResolver
public static class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings, new IFriendlyUrlResolver[] {
new MyWebFormsFriendlyUrlResolver() });
}
}