【发布时间】:2016-08-03 10:16:08
【问题描述】:
我正在尝试整合以下架构:
- /(根):ASP.NET WebForms 4.6 应用程序。
- /SPA(虚拟目录):ASP.NET MVC 4.6 应用程序。
为了清楚起见,这里是 IIS Express 配置:
<site name="Redacted.Axis.Web.UI.SingleApp-Site" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Projects\Axis\Dev\PocInternational\Web\Redacted.Axis.Web.UI.App" />
</application>
<application path="/SPA" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Projects\Axis\Dev\PocInternational\Web\Redacted.Axis.Web.UI.SingleApp" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:4010:localhost" />
</bindings>
</site>
它们位于单独的 Web 项目(UI.App 和 UI.SingleApp)上。我希望他们共享相同的身份验证。我已经设法使用通用机器密钥和相同的身份验证/表单配置使其工作。
我的最后一个问题是,没有提供根应用程序下的静态文件,例如 /CSS/site.css 或 /JS/jquery.js。我都收到了 500.22 错误。
假设这个错误意味着我应该处于经典模式,但 WebForms 应用程序到目前为止在集成模式下运行良好(默认.aspx 或 login.aspx 在 root 工作)。
也可能是system.web中定义的一些模块不在system.webServer中。但他们是。
我在两个 web.config 文件中都有这个:
system.webServer/validation@validateIntegratedModeConfiguration=false
systel.webServer/modules@runAllManagedModulesForAllRequests=true
子 MVC 应用程序的静态文件可以正常工作,例如 /SPA/Content/sites.css。
在我使用 MVC 应用程序添加虚拟目录之前,WebForms 应用程序运行良好。我必须更改的唯一另一件事是在根应用程序的所有 web.config 节点上添加 location@path=.@inheritInChildApplications=false,以便 MVC web.config 正常工作。
肯定有什么小事,但我不能指望它......
【问题讨论】:
标签: asp.net-mvc webforms web-config virtual-directory