Операторы Preprocessor #DEBUG на странице ASPX

Мое использование команды log4net от Apache. Это довольно легко и легко установить. Лучший из всех, это абсолютно настраивается из web.config файла, поэтому как только у Вас есть рычаги в Вашей установке кода, можно полностью измениться, способ регистрироваться сделан только путем изменения web.config файла.

поддержки log4net, регистрирующиеся к большому разнообразию местоположений - база данных, электронная почта, текстовый файл, журнал событий Windows, и т.д. Моей команде настроили его, чтобы отправить подробную информацию об ошибке в базу данных, и также послать электронное письмо всей команде с достаточной информацией для нас для определения в который часть кода порожденная ошибка. Тогда мы знаем, кто ответственен за ту часть кода, и они могут перейти к базе данных для получения более подробной информации.

24
задан Brian Tompsett - 汤莱恩 8 July 2016 в 19:14
поделиться

4 ответа

-

Интересная разница здесь - использование #if Debug на странице ASPX вытаскивает из тега в Web.config, но когда вы используете его в кодовом режиме, он вытягивает отладку из константы от Конфигурация сборки в файле проекта. Поэтому они на самом деле доступа к двум различным настройкам.

Таким образом, насколько я могу сказать, это на самом деле не возможно.

16
ответ дан 29 November 2019 в 00:13
поделиться

Я попробовал ваш код, и он отлично сработал. Я включил или отключил DEBUG в разделе system.web / compilation в web.config, запущенном как веб-сайт (не тестировался как веб-приложение; может быть другим ...).

Чтобы увидеть, что делает этот код , поместите на страницу намеренную синтаксическую ошибку и попробуйте запустить ее с включенным режимом отладки. Компилятор сгенерирует ссылку на странице ошибки, которая позволит вам просмотреть источник.

Подсказка: директивы препроцессора вставляются в вывод.

Line 218:     #if DEBUG 
Line 219:              
Line 220:              #line default
Line 221:              #line hidden
Line 222:              @__w.Write("\r\n<script type=\"text/javascript\" src=\"resources/jquery-1.3.2.js\" />\r\n");
Line 223:              
Line 224:              #line 14 "F:\Test\test.aspx"
Line 225:     #else 
Line 226:              
Line 227:              #line default
Line 228:              #line hidden
Line 229:              @__w.Write("\r\n<script type=\"text/javascript\" src=\"resources/jquery-1.3.2.min.js\" />\r\n");
Line 230:              
Line 231:              #line 16 "F:\Test\test.aspx"
Line 232:     #endif

Конечно, есть и другие. (лучше) способы делать то, что вам нужно ...

1
ответ дан 29 November 2019 в 00:13
поделиться

Лучшим подходом может быть использование кода на стороне сервера для включения сценария. Я бы использовал что-то вроде

protected void Page_Load(object sender, EventArgs e)
{
#if DEBUG    
    ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "JQueryScript", "resources/jquery-1.3.2.js");
    #else
    ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "JQueryScript", "resources/jquery-1.3.2.min.js");
    #endif
}
6
ответ дан 29 November 2019 в 00:13
поделиться

К сожалению, я не думаю, что у вас могут быть директивы препроцессора в aspx.

Более простой способ - просто иметь свойство в вашем коде программной части, которое подается в URL-адрес jQuery , затем вы можете установить директивы препроцессора для его объявления. Или, если вы предпочитаете сохранить URL-адрес в коде спереди, вы можете использовать элемент управления Literal и переключать их видимость в коде программной части на основе директив процессора.

Например:

code-infront:

<asp:literal id="litJQuery" EnableViewState="false" runat="Server">
<script type="text/javascript" src="resources/jquery-1.3.2.js" />
</asp:literal>
<asp:literal id="litJQueryDebug" EnableViewState="false" Visible="false" runat="Server">
<script type="text/javascript" src="resources/jquery-1.3.2.min.js" />
</asp:literal>

в методе Page_Load:

#if DEBUG
litJQueryDebug.Visible=true;
litJQuery.Visible=false;
#endif
-2
ответ дан 29 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: