我正在尝试创建一个Web应用程序容器,并在其下有另一个asp.net核心应用程序。 IIS上的树结构是这样的。
主要应用程序(my.localhost.com/) 子应用程序(my.localhost.com/subapp)
将项目发布到IIS并在浏览器中查看my.localhost.com之后一切正常但是当我访问my.localhost.com/subapp时出现以下错误
Detailed Error Information:
Module IIS Web Core
Notification BeginRequest
Handler Not yet determined
Error Code 0x800700b7
Config Error Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'aspNetCore'
Config File \\?\C:\ASP.net solutions\Myproject\admin\web.config
当发布的web.config(由asp.net核心自动生成)时,我删除了以下处理程序,似乎每件事情都运行正常。
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
现在我无法找到一种从web.config文件中排除它的方法。任何建议如何处理。请帮忙
答案 0 :(得分:0)
正如您所写,您必须仅在根级别web.config中定义aspNetCore处理程序。在子应用程序中,您只定义使用处理程序的应用程序。这是有问题的,因为发布会自动生成或使用处理程序规范转换 web.config。
对于ASP.NET Core(以及新项目文件格式),您可以使用<IsTransformWebConfigDisabled>False</IsTransformWebConfigDisabled>
禁用web.config转换。这当然意味着您必须手动编写web.config,因为它不会生成。
答案 1 :(得分:0)
我必须添加一个新的web.config(一个不存在),然后取消注释其中的内容
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<handlers>
<remove name="aspNetCore"/>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>