我创建了一个.net Core 2 API并将其发布到服务器。
与普通的.Net MVC结构相比,文件结构看起来很奇怪
正常结构我熟悉
这是部署的.NET CORE 2 API的结构
现在,如果我只是尝试将该文件夹转换为类似普通ASP.NET应用程序的应用程序,那么它就不起作用了。
我在服务器上安装了the .NET Core Windows Server Hosting bundle,但我仍然遗漏了一些东西。
您在哪里添加此代码以启用IISIntegration?
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
答案 0 :(得分:4)
该代码在Program.cs中,但它是默认的,所以你应该已经很好了。
ASP.NET Core文件结构 与MVC 5不同,但是一旦安装了.NET Core Hosting Runtime,它们的工作方式基本相同。将已发布的文件放在Web服务器上的目录中。然后,在IIS中设置一个站点以使用该目录。唯一略有不同的是,您需要编辑App Pool并将其设置为“No Managed Code”,而不是特定的.NET运行时。除此之外,它应该只是工作。
也就是说,如果您的屏幕截图是文件的完整列表,那么您似乎缺少一些东西。发布过程有可能在某些时候失败。尝试重新发布。
<强>背景强>
ASP.NET Core的工作方式与以前的ASP.NET Web应用程序根本不同。虽然您曾经拥有所有HTTP模块,而且这些模块来自机器上安装的单片.NET Runtime,但ASP.NET Core应用程序完全是独立的。 Core应用程序实际上只是一个控制台应用程序。在IIS设置中,实际的Web服务器是Kestrel,它可以捆绑到Core应用程序中,也可以从.NET Core运行时获得。 IIS用作反向代理。将请求转交给Kestrel,然后返回它从Kestrel获得的响应(因此称为“No Managed Code”)。使用IIS部署您的应用程序是一个DLL,但它也可以完全自包含并作为可执行文件进行部署。关键在于,是的,文件结构等是非常不同的,因为它从根本上以不同的方式工作。