Ошибка при выполнении дочернего запроса для server.transfer с обработчиком - PullRequest
2 голосов
/ 09 марта 2012

Я создал обработчик для обработки .html страниц в моем веб-приложении asp.net c #. Я также использую концепции перезаписи URL.
Обработчик отлично работает, когда любой запрос html приходит на сервер / веб-сайт. Детали кодирования следующие:

Код обработчика web.config:

<add verb="*" path="*.html," validate="false" type="MyProject.ContentHandler,MyProject" />

ContentHandler.cs Код:

public void ProcessRequest(HttpContext context)
{
            string strMapPage = string.Empty;
            if (context.Request.Url.ToString().Contains("category"))
            {
                strMapPage = "/Links.aspx?ID=" + ProducID;
            }
            else
            {
                strMapPage = context.Request.Url.ToString();
            }
            context.Server.Transfer(strMapPage);
}

Этот метод отлично работает для любого запроса .html, например, для этой страницы http://localhost:9111/user-category-1.html Но когда я пытаюсь открыть страницу вроде '/JS/TinyMCE/imagemanager/index.html'
Выдает ошибку «Ошибка выполнения дочернего запроса для /JS/TinyMCE/imagemanager/index.html"

Как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 05 октября 2012

Я добавил обработчик в web.config, и он решил проблему.

<add name="tinyMceIndexHandler" verb="*" path="/js/tiny_mce/plugins/imagemanager/pages/im/index.html" type="System.Web.StaticFileHandler" />
0 голосов
/ 16 апреля 2012

От Microsoft:

Службы Microsoft Internet Information Services (IIS) отправляют запрос Server.Transfer или Server.Execute соответствующему расширению интерфейса прикладного программирования (ISAPI) интернет-сервера на основании расширения запрашивающего файла.,Например, запрос на страницу .aspx отправляется расширению ISAPI Aspnet_isapi.dll.

После отправки запроса соответствующему расширению ISAPI расширение ISAPI не может вызвать другое расширение ISAPI.Появляется сообщение об ошибке «Ошибка выполнения дочернего запроса для PageName.asp», поскольку файл Aspnet_isapi.dll, который обрабатывает запросы к страницам ASP.NET, не может переслать запрос в файл Asp.dll, который обрабатывает запросы к страницам ASP.

Ваш халдлер создает проблему,

попробуйте это: Это вызвано тем, что пользовательский обработчик HTTP добавляется другим приложением, которое, скорее всего, запускается в корне вашего веб-сайта.Чтобы решить проблему, измените файл web.config.После добавления:

<httpHandlers>
<clear />
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" /> 
</httpHandlers>
...