ASP.NET - отключить тему для WebService - PullRequest
1 голос
/ 10 ноября 2010

У меня возникла та же проблема, что и здесь: http://forums.asp.net/t/1023591.aspx

У меня есть тема страницы по умолчанию, установленная в элементе <pages /> корневого web.config, который, в дополнение к остальной части веб-сайта, применяется к страницам WebService .ASMX. Я хотел бы запретить ASP.NET применять темы к страницам .ASMX.

В ответе в приведенном выше обсуждении говорится, что вы можете отредактировать файл DefaultWsdlHelpGenerator.aspx в корневой папке CONFIG .NET Framework (C: \ Windows \ Microsoft.NET \ Framework \ VERSION \ CONFIG \ DefaultWsdlHelpGenerator.aspx) и указать <%@ Page Theme="" %>, но это работает, только если вы можете получить доступ к этому файлу на сервере.

Я попытался добавить элемент <location /> в файл web.config, который указывает на определенный файл .ASMX, но, похоже, это игнорируется, поскольку страница .ASMX все еще остается тематической.

Есть ли способ запретить ASP.NET применять темы приложения к файлам .ASMX, который работает без изменения системного уровня DefaultWsdlHelpGenerator.aspx (упомянутого выше)?

Редактировать

Я могу обойти это, позволяя моему базовому типу страницы определять применяемую тему, но даже несмотря на мой обходной путь, мне интересно, есть ли «правильный» способ переопределить это довольно нелепое поведение в ASP.NET.

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Как насчет удаления строки из web.config и добавления строки на вашу базовую страницу (надеюсь, у вас есть), которая задает вашу тему по умолчанию.Если вы все еще хотите управлять через web.config, вы можете добавить запись appSettings для этого значения темы.

Пример:

    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
        this.Theme = <Enter Your Theme Here>;
    }
0 голосов
/ 10 ноября 2010

Обратите внимание, что файлы .asmx не являются "страницами" в любом смысле.Размещение их в папке, на которую распространяется действие директивы, которая выполняет некоторые действия «для всех страниц», не подходит.

Либо принимайте предложение от Захари , либо предложение от Джеймс Гонт .

Или, что еще лучше, вообще прекратите использовать ASMX и перейдите в WCF.

0 голосов
/ 10 ноября 2010

Если файлы .asmx не находятся в корне сайта, вы не можете просто поместить другой файл web.config в их папку и удалить там тему?

...