Редактировать файл CS на веб-сервере

У меня есть веб-сайт (.net 4.5) на Windows Server 2008 R2 Standard с IIS 7.5. Я использую Visual Studio 2012 для создания веб-сайта, и я опубликовал его из Visual Studio 2012.

Теперь моя проблема заключается в том, что ведущий парень на моей работе хочет иметь возможность редактировать файлы cs напрямую и распространять изменения на веб-сайт без необходимости запускать Visual Studio или перекомпилировать dll и копировать ее на веб-сервер. Я знаю, что это не самый безопасный способ, но у меня нет другого выбора, кроме как заставить его работать.

Так был настроен наш старый веб-сайт/веб-серверы. Я хотел сделать его более безопасным, поэтому я пошел по предварительно скомпилированному маршруту, и мне сказали не слишком.

  1. Как я могу изменить свои текущие настройки, чтобы разрешить это?
  2. Должен ли я все переиздавать? Сайт работает, и я не могу прерывать его использование.
  3. У меня есть класс, который обрабатывает соединения с базой данных. Можно ли это отредактировать таким же образом без перекомпиляции?

person Jerry Warra    schedule 17.10.2014    source источник
comment
В конце концов, это станет для кого-то кошмаром.   -  person    schedule 17.10.2014
comment
Я абсолютно согласен. Говорит, что много лет работал на старом сервере. Я должен использовать рычаги, чтобы сказать что-нибудь. Я должен сделать то, что просят.   -  person Jerry Warra    schedule 17.10.2014
comment
Достаточно честно, тогда я надеюсь, что вы получите свой ответ (кстати, я удивлен, что это исходит от лидера). EDIT: я подозреваю, что это отвечает на ваш вопрос: stackoverflow.com/questions/7666122/   -  person    schedule 17.10.2014
comment
Почему он считает, что ему нужно редактировать .cs файлов? Какие части сайта конкретно он хочет отредактировать? Если это просто редактирование контента, тем или меню, есть лучшие решения.   -  person CodeCaster    schedule 17.10.2014
comment
Насколько я понял от него, он хочет иметь возможность вносить изменения, если я недоступен, без установки Visual Studio. Он программист старой школы. Это только вершина айсберга.   -  person Jerry Warra    schedule 17.10.2014
comment
LEAD GUY, как вы заявили... заставляет меня задуматься над тем, что он ведет... это худшее предложение в отношении кодирования, которое я когда-либо слышал... он вообще не ведущий разработчик, по моему мнению... пожалуйста, скажите ему, чтобы он не подать заявку на любую должность, где я работаю .. Я бы серьезно спросил его, знаком ли он с 4GL-5GL языками программирования, вы должны стоять на своем в этом .. очевидно, что он не понимает .net, а также IIS любое изменение файла, распознаваемое из Веб-сервер IIS, например, изменение файла .config приведет к сбросу IIS ... нехорошо ...   -  person MethodMan    schedule 17.10.2014
comment
Мне любопытно, в какой компании вы работаете.. как и другие, я уверен, что тоже.. вам серьезно нужно направить своего так называемого лида к Stackoverflow, если станет хуже, попросите его погуглить Jon Skeet мастера .NET, который, вероятно, мог бы вразумить твой лидер..   -  person MethodMan    schedule 17.10.2014
comment
Вероятно, у него есть кто-то над его головой, к которому вы можете обратиться по этому поводу, если он не сдвинется с места, просто убедитесь, что ваше дело ясно, лаконично и подкрепляется лучшими практиками. @DJKRAZE IIS не сбрасывается при изменении web.config, а только пул приложений.   -  person Paul    schedule 17.10.2014
comment
Да, это то, что я имел в виду, Пол.. что по-прежнему не является хорошей практикой.. Я был настолько увлечен попыткой ответить на это в уважительной форме, что я неправильно выразился, но я думаю, что другие понимают, что я имею в виду.. как и ты Павел..уважительно говоря   -  person MethodMan    schedule 17.10.2014
comment
Кстати, кто бы ни задавал вопрос, он должен пересмотреть свое решение. Нет ничего плохого в том, как был задан вопрос, или в информации, которую пытается получить ОП. Просто потому, что это не лучшая практика, это не делает это плохим вопросом.   -  person Paul    schedule 17.10.2014
comment
@DJKRAZE Просто пытаюсь прояснить это для людей, у которых нет такого большого опыта в среде .NET, как у вас, чтобы они знали, что есть такая вещь, как сброс IIS, и другая вещь, это сброс пула приложений.   -  person Paul    schedule 17.10.2014
comment
Я согласен, Пол, на мой взгляд, это, вероятно, серьезно говорит один из лучших вопросов, которые я когда-либо видел здесь ... ОП пытается делать правильные вещи, но даже не может выполнять свою работу, основываясь на чьем-то плохом понимании. кодирования / лучших практик .. возможно, Джерри, вам следует найти как можно больше статей Microsoft по этому вопросу, чтобы поддержать ваш аргумент   -  person MethodMan    schedule 17.10.2014
comment
@Paul, я согласен. спасибо, что заметили и мой искаженный комментарий.   -  person MethodMan    schedule 17.10.2014
comment
Правильно ли я понимаю, что сайт раньше работал таким образом, что позволял менять файлы .cs на сервере, и что вы тогда правильно сделали, что изменили сайт так, чтобы он компилировался первым и только файлы .dll развернут?   -  person John Saunders    schedule 17.10.2014


Ответы (1)


Направьте его в эту тему, где все говорят, что это ужасная, ужасная идея.

Я имею в виду, что даже в динамических языках (ruby, node.js и т. д.) рекомендуется не изменять файлы на работающем веб-сервере.

Тем не менее, есть несколько способов сделать это. Возможно, проще всего использовать код в папке App_Code. Любые файлы классов, расположенные там, вызовут перезапуск сайта с изменениями, перекомпилированными фреймворком. Я бы порекомендовал ограничиться тем, что ему действительно нужно изменить, а не только тем, что он хочет изменить.

person Paul    schedule 17.10.2014
comment
DeeMac, я знаю, что меня больше всего беспокоит система контроля версий. Я использую сервер Team Foundation, и мне нравится содержать свой код в чистоте. Мне нравится смотреть историю и сравнивать файлы. Это в значительной степени выбрасывает все это в окно. - person Jerry Warra; 17.10.2014
comment
Например, я бы задал ему простой вопрос... что происходит, когда вы удаляете запись из базы данных без какой-либо истории... как вы восстанавливаете... или как вы восстанавливаете резервную копию, не имея фактической резервной копии...? то же самое относится и к TFS, что очень хорошо, у вас должен быть контрольный журнал.. на всякий случай, если вам нужно откатиться к рабочей версии.. ваш лидер должен быть прекращен, как, черт возьми, он получил свою позицию.. он должен настроить а также меняться с текущим временем.. время никогда не движется назад, всегда вперед.... Я сочувствую тебе в этом Jerry - person MethodMan; 17.10.2014