停止EPiServer尝试向我的虚拟目录提供请求

时间:2014-09-12 15:59:19

标签: asp.net iis-7 episerver

我们有一个内置于EPiServer的网站,并且正在www.mysite.com上运行

现在我们已经构建了一个小型的.NET微型网站,它不是我们想要作为IIS虚拟目录运行的EPiServer项目的一部分www.mysite.com/microsite

目前,我们看到微型网站上的所有资产都返回了404,所以www.mysite.com/microsite/assets/js/myjs.js或www.mysite.com/microsite/assets/img/myimg .JPG

提供微型网站的主页,但缺少资产。有一种方法我可以配置主EPiServer项目忽略对我的微网站文件夹结构的所有请求。

1 个答案:

答案 0 :(得分:1)

经过一段时间的斗争,我们现在得到了一个可重复的解决方案。

在父应用程序(EPiServer解决方案)中,我们需要在web.config中添加以下位置元素

  <location path="MY-IIS-APPLICATION-NAME">
    <system.webServer>
      <handlers>
        <clear />
        <add name="wildcard" path="*" verb="*" type="System.Web.StaticFileHandler" />
      </handlers>
    </system.webServer>
  </location>

然后,在同一个web.config中,我们使用此元素<system.web>

包装<system.webserver><location path="." inheritInChildApplications="false">部分

最后,我们需要更改IIS-Application中的web.config以卸载EPiServer处理程序和库。

所以,在<system.web>部分,我们添加了这些元素

<httpModules>
  <clear />
</httpModules>

<httpHandlers>
  <clear />
</httpHandlers>

然后在<system.webserver>内我们进行这些更改/删除

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
</handlers>
<modules>
  <remove name="InitializationModule" />
  <remove name="FirstBeginRequestModule" />
  <remove name="Initializer" />
  <remove name="WorkflowRuntime" />
  <remove name="UrlRewriteModule" />
  <remove name="ShellRoutingModule" />
  <remove name="ContainerDisposal" />
  <remove name="PropertyInjection" />
  <remove name="AttributedInjection" />
</modules>

这有可能不是解决方案,但在过去的几天里,我们已经将其推广到6个不同的项目,并且每次都有预期的效果。