Как развернуть .СЕТЕВОЕ веб-приложение без виртуального каталога

#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). Это была глубоко скрытая функция в веб-браузере файлов, где я этого не ожидал.

В конечном итоге я не смог развернуть это без создания виртуального каталога, так что, к счастью, у них действительно была эта функция.