2013-11-27 6 views
11

У меня есть большое приложение для ASP.NET (4.5 Framework), которое отлично работает при разработке и публикации VS2012.COMPILATION debug = false убивает мой сайт ASP.NET

С тех пор я обновился с VS2012 до VS2013, и я открыл решение без проблем, и он отлично работает локально (на IIS Express).

Я не знаю, является ли это красношейной, но я использовал NuGet для обновления набора инструментов AJAX Control Tool в первый раз (и его зависимостей), и он, похоже, сработал.

Когда я публикую (файловую систему публиковать) сайт на нашем веб-сервере (IIS 8 в Windows Server 2012), он загружает прекрасные UNTIL, я меняю <compilation defaultLanguage="vb" debug="true" targetFramework="4.5"> на debug="false".
Когда я это делаю, сайт работает как свинья, иногда страницы даже не загружаются, а его рабочий процесс IIS всплескивает процессор и держится, увеличиваясь в%, пока не потребляет практически весь процессор.

EDIT: это происходит на сервере, и на моем компьютере (IIS Express)

AppPool Этого тест сайта работает с одинаковыми настройками, как AppPool наших живых сайта. Следует отметить:

  • Включить 32-разрядные приложения: Истинные
  • .NET Framework Версия: v4.0
  • Управляемый Pipeline режим: Интегрированный

Я ожидаю, что вам нужно больше информации, но я честно не знаю, с чего начать, и я не хочу подавлять ненужные детали.
Заранее спасибо

EDIT: Я действительно хотел бы упомянуть, это:
сайт прекомпилируется во время печататься в режиме выпуска. Мне никогда не приходилось менять debug = false в моей среде разработки до публикации в прошлом.

Я получаю это для каждого из проектов в моем решении: (0,0): warning : The following assembly has dependencies on a version of the .NET Framework that is higher than the target and might not load correctly during runtime causing a failure: [projectname], Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. The dependencies are: Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. You should either ensure that the dependent assembly is correct for the target framework, or ensure that the target framework you are addressing is that of the dependent assembly.

EDIT: он появляется это решение, которое я унаследовал это веб-сайт не APP. Я не знаю, входит ли это в игру.

+1

Я не верю, что описанное вами изменение вызовет симптомы, которые вы описываете. Если вы изменили свой web.config и нажали обновление, да, вы можете немного опоздать, так как комбат сайта/приложения может перестраивать/перерабатывать, но не совсем так, как вы описываете. Вопрос в том, почему вы развертываете вообще в режиме отладки, а затем отключите его, но это один на другой день! – dougajmcdonald

+1

Что-нибудь получить в журнале событий на веб-сервере? – Kyle

+0

попробуйте предварительно скомпилировать - и установите ваш проект в режим выпуска с режимом debug в web.config = 'false', и он должен работать нормально. – ps2goat

ответ

7

Мне не удалось позвонить в Microsoft по этому вопросу. Они использовали ProdDump и LogMan, чтобы проанализировать, что происходит. Менее чем через 24 часа вернулся ко мне и сказал:

«Нить 19, похоже, сильно увязла с процессором.В верхней части стек указывает, что AjaxMin пытается выполнить FindEntry в объекте Dictionary , и это было вызвано из AjaxControlToolKit, , в частности, похоже, что атрибут «CombineScripts» определен как на главной странице, так и на странице дизайна OrderDetails.aspx. В основном это объединяет все JS-файлы и их минимизирует.

Быстрый тест будет отключить логику CombineScript от AjaxControlToolKit и посмотреть, если это улучшает производительность»

Google сказал мне CombineScripts был атрибутом ToolkitScriptManager и с тех пор AJAX всегда было (без какой-либо реальной причины, просто догадка). Я вскочил на него.

Достаточно, изменив мою ссылку на ToolkitScriptManager, чтобы включить CombineScripts = "false" полностью исправлена ​​проблема!

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" CombineScripts="false" ScriptMode="Release" /> 

Похожие сообщения: Я не только один: https://www.google.ca/#q=ToolkitScriptManager+combinescripts+problem

Два полезных сообщений: http://forums.asp.net/t/1696523.aspx http://ajaxcontroltoolkit.codeplex.com/workitem/27558

0

В свойствах проекта проекта проверяйте любую ссылку на старую версию инструментария управления Ajax. Если найдутся какие-либо, удалите их и повторите попытку.

+0

Единственная ссылка на набор инструментов (и зависимости ajaxmin & htmlagilitypack) - это все версии «Автообновление». Я удалил ссылки в любом случае и снова добавил их обратно через Manage NuGet Packages. Та же проблема сохраняется. Спасибо, хотя! – PTansey

0

Я несколько раз выдавал ту же ошибку, когда использую nuget. Я думаю, что конфликт - это ссылка на сборку web.config. Пожалуйста, сравните ссылку на dll и ссылку web.config.

+0

единственные ссылки в моем web.config должны быть в порядке. Однако, спасибо! см. Ниже для ответа! – PTansey

0

Попробуйте изменить версию .NET для пула приложений для V4.0

Смежные вопросы