#c# #asp.net #deployment
#c# #asp.net #развертывание
Вопрос:
У меня есть учетная запись хостинга, где я не могу войти на сервер, я должен использовать панель администратора и FTP для развертывания проекта.
У меня есть ASP.NET Веб-приложение 2.0 webforms, которое мне нужно развернуть в глубокой папке, но я не верю, что у меня есть доступ к созданию виртуального каталога в этой папке.
Я могу правильно развернуть этот код / приложение на своем собственном сервере, зайдя и создав виртуальный каталог. Затем приложение работает нормально. Без виртуального каталога я получаю ту же ошибку в рабочей среде, в которой я пытаюсь выполнить развертывание.
Все они являются ошибками синтаксического анализатора, например
Файл ‘/Site.master’ не существует.
и
Не удалось создать тип ‘MyNamespace.webServiceName’.
Нужно ли мне создавать его по-другому? Опубликовать его по-другому? Должен ли это быть веб-сайт, а не веб-приложения? У меня есть несколько папок на веб-сервере, который определенно имеет .NET и определенно работает с другими приложениями.
Комментарии:
1. Сайт предварительно скомпилирован или нет? Обычно в среде хостинга, подобной той, которую вы описываете, вы просто загружаете все свои файлы и папки в папку wwwroot через FTP.
Ответ №1:
По сути, вы меняете хост. Точка.
Любой хост, предлагающий ASP.NET следует также предложить создание приложений, которые представляют собой специальную форму виртуального каталога. Позвоните в их службу поддержки. Если они не помогают, запустите. Нарушение контракта.
Ответ №2:
Обычно у вашего хостинг-провайдера есть способ преобразовать виртуальный каталог в приложение через какую-то панель администратора. Если нет, вы можете попробовать позвонить и попросить их сделать это за вас.
Ответ №3:
В прошлом мне приходилось сталкиваться с этим с некоторыми хостинг-провайдерами. По сути, они предоставляют вам один виртуальный каталог, который содержит одну активную папку «bin» для ваших dll. Проблема в том, что все ваши пути совершенно разные, когда вы создаете веб-приложение в корне проекта в Visual Studio.
Один из способов, которым мы решили проблему, — это восстановить точно такую же структуру папок, начиная с корня виртуального каталога на рабочем сервере в вашем проекте Visual Studio. Управлять проектом немного сложнее (и правильными пространствами имен, если вы пурист в этом отношении), но тогда вы можете поместить скомпилированную dll в папку «/ bin» и опубликовать остальные файлы непосредственно в нужные папки. Делая это, ваш проект будет знать полный путь к файлам, поскольку они будут существовать на рабочем сервере, поэтому выполнение таких Server.MapPath()
действий приведет к правильным результатам.
Другим вариантом было бы найти другого хостинг-провайдера (предложенного TomTom), но это может быть невозможно в зависимости от вашей ситуации.
Ответ №4:
Я нашел способ создать виртуальный каталог на моем общем хосте (1 и 1). Это была глубоко скрытая функция в веб-браузере файлов, где я этого не ожидал.
В конечном итоге я не смог развернуть это без создания виртуального каталога, так что, к счастью, у них действительно была эта функция.