gpt4 book ai didi

Azure 虚拟目录中的多个站点

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:16 25 4
gpt4 key购买 nike

我需要在同一个域上部署 3 个 ASP.NET Core 站点(子域不适用于我的 SSL 证书)。

virtual-directories-config

当我部署 api 和身份项目时,它们工作正常。但是,当部署单页应用程序时,api 和身份停止工作。

The page cannot be displayed because an internal server error has occurred.

该错误会立即出现,因此我猜它可能在启动初期就失败了。单页应用程序运行正常。

水疗中心似乎有干扰,我尝试了 here 中的解决方案忽略路线,但我得到了同样的错误。

我已经尝试过解决方案here获得更具描述性的错误,但无济于事。

不知道该去哪里

最佳答案

问题的原因是根应用和子应用都添加了aspNetCore处理程序,导致配置系统崩溃。您可以通过在 Azure 门户中打开详细错误消息来查看这一点,然后在 D:\home\LogFiles\DetailedErrors 下找到错误页面。 。您将看到此错误:

Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'aspNetCore'

有两种方法可以解决这个问题。

第一个是使用 location标签以防止继承。具体来说,更改根应用程序的 web.config来自这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\myapp.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" />
</system.webServer>
</configuration>

像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\myapp.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" />
</system.webServer>
</location>
</configuration>

第二种方法是删除 <handlers> 应用程序中的部分以避免重复(如子应用程序配置下的 doc 中所建议):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<aspNetCore processPath="dotnet" arguments=".\mySubApp.dll" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" />
</system.webServer>
</configuration>

关于Azure 虚拟目录中的多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com