使用Sitecore 6.4.1运行Asp.net应用程序错误

时间:2011-09-07 03:46:27

标签: iis-7.5 sitecore sitecore6

我将Sitecore作为站点根目录(运行正常),在其下我需要运行一堆asp.net应用程序。

到目前为止,为子应用程序创建了一个虚拟目录,将其转换为应用程序。但是当我浏览子应用程序时,它会出现此错误消息。

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0246: The type or namespace name 'Sitecore' could not be found (are you missing a using directive or an assembly reference?)

Source Error:



Line 3264:          </providers>
Line 3265:      </roleManager>
Line 3266:      <profile defaultProvider="sql" enabled="true" inherits="Sitecore.Security.UserProfile, Sitecore.Kernel">
Line 3267:          <providers>
Line 3268:              <clear/>

似乎子asp.net应用程序继承了来自Sitecore web.config的Sitecore设置。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这应该是可能的。您必须为虚拟目录中的非Sitecore应用程序创建web.config,并覆盖引用Sitecore类的<system.web><system.webserver>下的部分。这包括:

  • httpModules / httpHandlers(对于这些你应该“全部删除”并添加该网络应用程序的那些)
  • 安全部分(将默认的ASP.NET提供程序类放回)
  • main web.config 中的
  • 将此网络应用的路径添加到 IgnoreUrlPrefixes 设置,让Sitecore知道它不应该处理对这些的请求

它可能是别的东西,但你应该得到一般的想法。

答案 1 :(得分:1)

这个答案类似于Yan,但对于单独的答案来说是不同的。希望它有所帮助。

进入IIS并选择子应用程序。选择模块。删除所有与Sitecore相关的模块。别担心,父Sitecore应用程序仍将保留这些模块。 Sitecore modules in IIS

执行此操作时,实际上是在更改子应用程序web.config,因此您将在web.config文件中看到删除的元素,如此。

<remove name="SitecoreConfigWatcher" />
<remove name="SitecoreHttpModule" />

您可能还需要清除其他一些继承的设置。

<profile enabled="false"><providers><clear/></providers></profile>
<roleManager enabled="false"><providers><clear /></providers></roleManager>