我可以使用 CI 工具/MS WebDeploy 将在 .net core 2.1 上创建并以 SQL Server 作为数据库的 Web 应用程序托管到 Azure Web 应用服务吗?
我要注意以下几点:
- 应用程序正在使用文件系统进行临时存储和文件存储
- 部署应由 jenkins 等 CI 工具管理
- 部署后,应使用一些 key /服务器详细信息修改应用设置文件
- 日志文件(存储在应用根目录中)应可由应用管理员访问
有没有办法创建一个与 IIS 中相同的虚拟目录并使用 FTP 或类似协议(protocol)上传文件..?
最佳答案
您对部署 .net core 2.1 Web 应用程序的所有疑问都是可以实现的。
假设我们的项目全部完成并上传到github。
有关您疑虑的问题和解释:
关于使用数据库的连接配置,可以直接在
web.config
中进行配置。如果您使用的是azure sql server
,找到连接字符串,设置防火墙
,并通过SSMS
测试,就可以测试连接了在代码中。还可以将其添加到门户中的配置 -> 应用程序设置 -> 连接字符串
中。添加后优先级高于web.config
中的配置,会覆盖该配置,不会修改web.config
文件。关于文件存储的使用,您可以使用azure存储服务,也可以不使用。具体看业务,比如可以在当前程序运行目录下存放非常小的图片、文档等文件,这与代码层面的原始开发是一致的。发布时需要include the MyFiles file in the publishing process ,或者等待发布完成后在kudu中手动添加文件夹,或者程序可以判断。建议使用程序判断,后续程序升级不会丢失数据。
应用设置文件中的 secret 信息实际上可以在
web.config
或appsetting.json
中配置。本地调试时确保离线项目正常运行,然后才能发布。其余部分按照第一个说明在门户中配置。Log Files文件存储完全可以达到你想要的效果。设置此应用程序服务的所有者权限应该足够了。详情请引用the official documentation .
虚拟目录和虚拟应用程序,我有a better answer这里有另一篇文章,你可以引用一下。
步骤:
首先,我们可以在门户中创建一个Web应用程序并选择.net core 2.1。创建应用服务,完成后单击“部署中心”。
按照提示一步步操作,等待github中的Action
完成,即发布成功。
关于使用 FTP/MS WebDeploy 的 Azure Web 托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62708740/