2017-10-06 129 views
0

我对.NET Web API开发和mono都很陌生,所以这个问题可能会变得太基本,但我一直无法找到任何指示用于在Linux上的xsp4中部署Web API 2项目。它甚至有可能吗?在Linux上运行Web Api 2(mono/xsp4?)

我能够通过寻址.aspx文件轻松地运行ASP.NET应用程序,但是一旦发布它,Web API应用程序就只是一堆.config和.dll文件。

如何在xsp4服务器内部启动它,使其中指定的所有路由映射正确?它是从命令行完成的,还是需要一个配置文件?

+0

您现在应该放弃Mono进行Web开发,并切换到Linux上的ASP.NET Core,特别是当您刚刚进入.NET世界时,https://docs.microsoft.com/en-us/aspnet/这就是未来是。 –

+0

@LexLi这是我的计划B,如果我不能在单声道下运行。我知道Core是最好的新方法,但我有一个传统的应用程序,我宁愿用最小的努力在Linux上实现它(只需要使其足以演示)。据我所知,迁移到Core需要一些代码更改:https://docs.microsoft.com/en-us/aspnet/core/migration/webapi我宁愿避免,如果我可以帮助它。 – ovscodes

回答

0

下面是已经工作的基本方法:

  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> 
    

    说实话,我真的不知道什么是虚拟主机和虚拟端口做的,但我并不需要与那些乱七八糟现在。关键是路径和vpath。路径是在主机系统的硬盘驱动器上整个发布的WebAPI项目的目录的物理位置。 Vpath是您在URL中指定的内容,以便访问您定义的此Web应用程序。由于我将/指定为vpath,这意味着此服务器上的所有路径都将转到我的应用程序。因此,如果在应用程序内部定义诸如“/ webapi/v10/users”之类的路线,那么使用/ for vpath,它将通过“localhost:9090/webapi/v10/users”进行访问。 (请参阅如何设置端口下一步)。

  2. 你可以通过下面的命令来启动xsp4:

    xsp4 --appconfigfile webapi.webapp --port 9090 
    

    使用appconfigfile提供的路径,在步骤1中创建的配置文件,并设置服务器将在其上侦听的端口。我不确定这是如何与配置文件中的vport相关的,我没有想到这一点。

如果你需要HTTPS,xsp4似乎也支持它(基于它的手册页),但我还没有尝试过。否则,我认为即使不使用mod_mono,也可以将Apache设置为反向代理。