Справочная информация: я создал собственный HttpHandler, который выполняет определенную команду на основе опубликованных пользователем параметров. Поскольку JQuery Ajax интенсивно используется на моем веб-сайте, я принял подход к контентным страницам, в котором я выполняю страницу aspx, содержащую контент для страницы контейнера, просматриваемой пользователем.
На данный момент я использую общий хостинг Godaddy и, поскольку сайт находится в зачаточном состоянии, я не могу перейти на выделенный / виртуальный сервер.
Все отлично работает на моем ПК, но не на сервере.
Я получаю эту ошибку:
[SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
System.Web.UI.PageParser.GetCompiledPageInstance(String virtualPath, String inputFile, HttpContext context) +46
SL.Controller.Commands.CommandHelper.ExecutePage(SLActionInfo actionInfo, String url) +95
SL.Controller.Commands.ProductCommand.Execute(SLActionInfo actionInfo) +32
SL.Controller.CommandFactory.ExecuteCommand(HttpContext context) +224
SL.Controller.DefaultHttpHandler.ProcessRequest(HttpContext context) +20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
....
Странная вещь: Server.Execute (строка virtualUrl) работает, а PageParser.GetCompiledPageInstance - нет.
Почему я использую PageParser.GetCompiledPageInstance, а не Server.Execute (строка URL)? Из-за следующего кода:
public static string ExecutePage(SLActionInfo actionInfo, string url)
{
var context = actionInfo.Context;
var sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
IHttpHandler handler = PageParser.GetCompiledPageInstance(url, context.Server.MapPath(url), context);
if (handler is SL.UI.SLPageBase)
((SL.UI.SLPageBase)handler).ActionInfo = actionInfo;
context.Server.Execute(handler, htw, true);
return sw.ToString();
}
Поскольку мои страницы контента происходят от SLPageBase (подкласс страницы), который имеет свойство ActionInfo, которое необходимо установить в этом методе ExecutePage, я использую подход PageParser.
Я не знаю, как избавиться от этой ошибки, не нарушая мой подход PageParser.
Любая помощь будет оценена.