具有子虚拟目录的ASP.NET ASP.NET应用程序上的子目录文件的500.22 ASP.NET MVC应用程序

时间:2016-04-12 16:47:14

标签: asp.net-mvc webforms web-config virtual-directory

我正在尝试整合以下架构:

  • /(root):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应用程序在集成模式下工作正常(在root工作时默认为.aspx或login.aspx)。

它还可能意味着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正常工作。

必须关闭一些东西,但我不能把手指放在上面......

1 个答案:

答案 0 :(得分:0)

张贴的力量。

我开始认为root web.config中的位置标记与它有关。

我找到了答案here

对于lazies,validateIntegratedModeConfiguration必须位于location标记之外。你可以有两个system.webServer部分,它没关系(但不是两个验证标签)。

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<location path="." inheritInChildApplications="false">
    <system.webServer>...</system.webServer>
</location>