ASP.NET核心部署应用程序失败

时间:2017-04-09 14:17:24

标签: c# asp.net apache asp.net-core

我目前正在尝试学习ASP.NET Core,到目前为止真的很棒:) 我已经安装了Core Runtime以及运行WebApp所需的一切, 我在过去几个小时里挣扎的是, 当我在http://ip:5000这样的网址中使用端口时,我才能访问WebApp,但是当我尝试这样http://ip/WebApp时,我收到了404错误。

Ubuntu 16.04 with Apache

我非常确定我已经在Apache中配置了所有内容以使其正常运行。这是我在/etc/apache2/sites-available/proxy-host.conf

中的配置文件
<VirtualHost *:80>
  DocumentRoot /var/www/WebApp/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  ProxyPass /WebApp http://localhost:5000
  ProxyPassReverse /WebApp http://localhost:5000
  ServerName localhost
</VirtualHost>

和我的小样本应用

public static void Main(string[] args)
        {

            var config = new ConfigurationBuilder()
               .SetBasePath(Directory.GetCurrentDirectory())
               .AddJsonFile("hosting.json", optional: true)
               .Build();

            var host = new WebHostBuilder()
                .UseKestrel()
                .UseUrls("http://*:5000")
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .UseApplicationInsights()
                .Build();

            host.Run();
        }

我在这里缺少什么?我很确定这是一个noob问题,但我记得我在努力学习:=)

1 个答案:

答案 0 :(得分:0)

通过将主要方法中的配置和我的代码更改为:

,我能够修复此问题
 var host = new WebHostBuilder()
                .UseKestrel()
                .UseUrls("http://*:5000/WebApp")
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .UseApplicationInsights()
                .Build();

    host.Run();

并在Config文件中

<VirtualHost *:80>
  DocumentRoot /var/www/WebApp
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  ProxyPass /WebApp http://localhost:5000/WebApp
  ProxyPassReverse /WebApp http://localhost:5000/WebApp
  ServerName localhost
</VirtualHost>