Запуск Web Api 2 в Linux (mono/xsp4?)
Я новичок как в разработке.NET Web API, так и в моно, поэтому этот вопрос может оказаться слишком простым, но я не смог найти никаких инструкций по развертыванию проекта Web API 2 в xsp4 в Linux. Это вообще возможно?
Я мог легко запускать приложения ASP.NET, обращаясь к их файлам.aspx, но приложение Web API, после его публикации, - это просто набор файлов.config и.dll.
Как запустить его на сервере xsp4 так, чтобы все маршруты, указанные в нем, отображались правильно? Это делается из командной строки, или вам нужен файл конфигурации?
1 ответ
Вот основной метод, который работал:
Создайте файл конфигурации для xsp4, назовем его webapi.webapp. Внутри файла конфигурации определите это приложение:
<apps> <web-application> <name>MyWebAPI</name> <vhost>localhost</vhost> <vport>9090</vport> <vpath>/</vpath> <path>/home/me/MyWebAPI</path> </web-application> </apps>
Честно говоря, я на самом деле не знаю, что делают vhost и vport, но мне пока не нужно связываться с этим. Ключ - это путь и vpath. Путь - это физическое расположение каталога со всем опубликованным проектом WebAPI на жестком диске хост-системы. Vpath - это то, что вы указываете в URL для доступа к определенному вами веб-приложению. Поскольку я указал / как vpath, это означает, что почти все пути на этом сервере будут идти к моему приложению. Так что если внутри приложения я определяю маршрут, такой как "/webapi/v10/users", то через / для vpath к нему будет обращаться через "localhost:9090/webapi/v10/users". (См. Следующий шаг о том, как установить порт.)
Вы запускаете xsp4 с помощью следующей команды:
xsp4 --appconfigfile webapi.webapp --port 9090
Используйте appconfigfile, чтобы указать путь к файлу конфигурации, созданному на шаге 1, и указать порт, который будет прослушивать сервер. Я не уверен, как это относится к vport в файле конфигурации, я не удосужился выяснить это до сих пор.
Если вам нужен HTTPS, xsp4, кажется, также поддерживает его (основываясь на его man-странице), но я еще не пробовал. В противном случае, я думаю, вы также можете настроить Apache в качестве обратного прокси для него, даже если вы не используете mod_mono.