Запуск Web Api 2 в Linux (mono/xsp4?)

Я новичок как в разработке.NET Web API, так и в моно, поэтому этот вопрос может оказаться слишком простым, но я не смог найти никаких инструкций по развертыванию проекта Web API 2 в xsp4 в Linux. Это вообще возможно?

Я мог легко запускать приложения ASP.NET, обращаясь к их файлам.aspx, но приложение Web API, после его публикации, - это просто набор файлов.config и.dll.

Как запустить его на сервере xsp4 так, чтобы все маршруты, указанные в нем, отображались правильно? Это делается из командной строки, или вам нужен файл конфигурации?

1 ответ

Вот основной метод, который работал:

  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". (См. Следующий шаг о том, как установить порт.)

  2. Вы запускаете xsp4 с помощью следующей команды:

    xsp4 --appconfigfile webapi.webapp --port 9090
    

    Используйте appconfigfile, чтобы указать путь к файлу конфигурации, созданному на шаге 1, и указать порт, который будет прослушивать сервер. Я не уверен, как это относится к vport в файле конфигурации, я не удосужился выяснить это до сих пор.

Если вам нужен HTTPS, xsp4, кажется, также поддерживает его (основываясь на его man-странице), но я еще не пробовал. В противном случае, я думаю, вы также можете настроить Apache в качестве обратного прокси для него, даже если вы не используете mod_mono.

Другие вопросы по тегам