Blazor应用程序的Azure AppService集环境?

8hhllhi2  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(107)

我想将Blazor应用程序(Web程序集)部署到Azure App Service。
我想将Azure应用服务的环境设置为开发。
我试着把它设置为开发。


的数据
但是在部署之后,它说环境:生产。



Homepage.razor:

@using Microsoft.AspNetCore.Components.WebAssembly.Hosting
@inject IWebAssemblyHostEnvironment HostEnvironment

<PageTitle>Index</PageTitle>

<p>Environment: @HostEnvironment.Environment</p>

字符串
请任何人都可以建议如何将Azure应用服务上的环境设置为开发,而不是默认为生产。
非常感谢。

m3eecexj

m3eecexj1#

你需要修改你的web.config来传递我最近尝试的头文件中的变量。
您可以在Azure中手动测试此功能,方法是转到部署槽,然后在开发工具下选择App Service Editor(preview)。
这将显示已部署应用程序的根目录,如果不存在web.config,则Azure已为您创建了一个。
你可以像这样手动添加header:

<httpProtocol>
  <customHeaders>
    <add name="Blazor-Environment" value="Development" />
  </customHeaders>
</httpProtocol>

字符串
这将进入<system.webServer>标记。
Azure为我创建了这个(你可以看到我插入头的位置):
x1c 0d1x的数据
现在,当你加载页面时,你的应用将加载正确的app.{environment}.json文件:



根据发布方式,您可能需要创建单独的web.{environment}.config文件:
如果在Visual Studio IDE中使用.pubxml发布功能,您可以这样做:
1.将多个web.config文件添加到项目中,每个文件都是为特定环境设计的。您可以将它们命名为web.Production.configweb.Testing.config等。
1.确保将这些文件的Copy to Output Directory属性设置为Do not copy
1.然后,在每个.pubxml文件中添加一个Target,它将在发布过程中将相应的web.*.config重命名为web.config
例如,如果你有一个Production.pubxml,你可以包括:

<Target Name="WebConfigReplacement" BeforeTargets="CopyAllFilesToSingleFolderForPackage">
    <Move SourceFiles="$(ProjectDir)web.Production.config" DestinationFiles="$(ProjectDir)web.config" OverwriteReadOnlyFiles="true"/>
</Target>


对于Testing.pubxml,您可以包括:

<Target Name="WebConfigReplacement" BeforeTargets="CopyAllFilesToSingleFolderForPackage">
    <Move SourceFiles="$(ProjectDir)web.Testing.config" DestinationFiles="$(ProjectDir)web.config" OverwriteReadOnlyFiles="true"/>
</Target>


请记住更改路径$(ProjectDir)web.Production.config$(ProjectDir)web.Testing.config以匹配web.*.config文件的实际位置。
这将在发布过程中用特定于环境的文件替换web.config文件。每次在本地环境中构建项目时,都会从web.config.template文件再次创建web.config
注意:在尝试此操作之前,请确保备份您的文件,因为使用Move任务将覆盖您的文件。在部署到生产环境之前,始终在安全的环境中进行测试。
此外,您应该从源代码控制中排除web.config文件,以防止意外提交特定于环境的配置。

r8uurelv

r8uurelv2#

Azure App Service中的默认部署槽是生产部署槽。您需要专门为开发或其他环境设置插槽(“staging”更常用)。有关详细信息,请参阅Azure App Service documentation for setting up staging environments

相关问题