我有一个带有REST apis的ASP.NET核心应用程序。在VS Studio 2015的开发中,我只是像可执行文件一样运行应用程序,或者直接从命令行运行dotnet run并且工作得很好。根据我的配置,它运行在端口5000:
namespace MyApp
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseUrls("http://*:1000", "https://*:1234", "http://0.0.0.0:5000")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
当应用程序与Kestrel一起运行时,我发送正确的GET请求(使用基本授权并由自定义中间件类解决)没有问题。但是当我在VS2015中选择“IIExpress”并运行(在不同的随机端口,让我们说http://localhost:60136)它不起作用,当我尝试发送任何请求(现在到该端口60136)时它返回一个OPTIONS 401.显然,忽略了我的自定义中间件。
因为我需要在我的Windows Server 2012中发布它,我很难避免使用IIS,但有些文档和评论指出我不要直接使用Kestrel ......
另外,我用这个命令生成了应用程序:
dotnet publish -f netcoreapp1.0 -c release
但是,没有可执行文件!
有没有办法在我的服务器中运行此应用程序,就像在dev中一样? 或者有没有办法用IIS正确安装它?