【发布时间】:2022-10-13 03:23:03
【问题描述】:
如何在 IIS 中托管此 simple tutorial 的已发布结果?是否有关于如何最好地做到这一点的指导?
该解决方案包含一个 ASP.NET Core Web API 项目(后端)和一个 Angular 项目(前端)。它适用于 VS2022(使用 IIS表达)。当我发布后端项目时,它还包含包含 Angular 文件的 wwwroot 文件夹(见下文)。
在 IIS(在我的 Windows 10 工作站上)中,我添加了一个绑定到 http 端口 84 的新网站,并将应用程序池设置为无托管代码并将其指向发布文件夹(见下文)。
http://localhost:84结果为 404,但 http://localhost:84/weatherforecast 按预期返回 JSON 响应。 Web API 项目按预期工作,但不是 Angular 部分。我猜那是因为
我可以在 IIS 中将这两个项目作为单独的网站托管,并且我必须执行两个单独的发布步骤(没什么大不了的),但 Web API 发布文件夹仍将包含带有 Angular 文件的 wwwroot 文件夹,这感觉不对.
另一种选择是拥有一个同时包含 Web API 和 Angular 文件的项目,但这也让人感觉不对。
鉴于微软的指导(通过教程)是拥有单独的项目并将它们一起发布,似乎有一种在 IIS 中以这种方式托管它们的好方法,并且该社区中的某个人知道答案(任何其他陷阱表示赞赏以及)。
C:\kk\AngularTypeScript\publish
|-- Backend.deps.json
|-- Backend.dll
|-- Backend.exe
|-- Backend.runtimeconfig.json
|-- Microsoft.OpenApi.dll
|-- Swashbuckle.AspNetCore.Swagger.dll
|-- Swashbuckle.AspNetCore.SwaggerGen.dll
|-- Swashbuckle.AspNetCore.SwaggerUI.dll
|-- appsettings.Development.json
|-- appsettings.json
|-- web.config
`-- wwwroot
|-- 3rdpartylicenses.txt
|-- favicon.ico
|-- index.html
|-- main.e3e89bda804b4330.js
|-- polyfills.69ca295dd26cc35d.js
|-- runtime.f8659de94caf0803.js
`-- styles.ef46db3751d8e999.css
【问题讨论】:
标签: angular visual-studio asp.net-core iis asp.net-core-webapi