0

<handlers />我的web.config 中有以下部分来为各种文件扩展名注册ActiveReports 6处理程序:

<handlers accessPolicy="Read, Execute, Script">

  <add name="ActiveReportsRpxHandler" path="*.rpx" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
  <add name="ActiveReportsWebCacheHandler" path="*.ArCacheItem" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
  <add name="ActiveReportsCompiledReportHandler" path="*.ActiveReport" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />

</handlers>

当应用程序池配置为在集成管道模式下使用 .NET 4.0 时,这在 Windows Server 2008 R2 下的 IIS 7.5 下运行良好。


如果我尝试在IIS Express 7.5下使用这个确切的 web.config 运行相同的应用程序,我会收到以下令人困惑的错误消息:

**HTTP Error 500.19 - Internal Server Error**

**Config Error**    Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'ActiveReportsRpxHandler'

此错误消息没有多大意义,特别是如果我将唯一的“名称”属性更改为其他内容并且错误消息会相应调整。(不太可能在ActiveReportsRpxHandler6161616161其他地方重复)

此 IISExpress 实例遵循以下 applicationhost.config:

<site name="xxxxxxx" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\xxxxxxx\Documents\Visual Studio 2010\Projects\xxxxxxx\xxxxxxx" />
    </application>
    <application path="/AIMS" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Users\xxxxxxx\Documents\Visual Studio 2010\Projects\xxxxxxx\xxxxxxx" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:32150:localhost" />
    </bindings>
</site>

任何线索 IIS Express 7.5 是怎么回事?还是我在这里做一些愚蠢的事情?

4

1 回答 1

1

也许处理程序在配置文件链中的某个地方注册。在http://msdn.microsoft.com/en-us/library/ms178685(v=vs.100).aspx上查看有关它的详细信息 。或者,您可以尝试

<handlers accessPolicy="Read, Execute, Script">
  <remove name="ActiveReportsRpxHandler"/> 
  <add name="ActiveReportsRpxHandler" path="*.rpx" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.RpxHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
  <add name="ActiveReportsWebCacheHandler" path="*.ArCacheItem" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.WebCacheAccessHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />
  <add name="ActiveReportsCompiledReportHandler" path="*.ActiveReport" verb="*" type="DataDynamics.ActiveReports.Web.Handlers.CompiledReportHandler, ActiveReports.Web, Version=6.0.1797.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" />

</handlers>
于 2012-10-23T21:20:25.703 回答