无法加载类型ImageResizer.InterceptModule

时间:2016-03-15 17:19:06

标签: imageresizer

ImageResizer在我们的测试和开发环境中设置并运行,但是我们无法在我们的生产环境中使用它。我已经设置了IIS站点相同(除了名称等)并具有相同的Web.config选项(只有ImageResizer相关的东西)....并且没有骰子。我们不断收到以下错误。我们已经尝试重新下载文件,我们检查了其他建议。一切都没有用。

.NET版本4.5.2。

dll版本4.0.4.934(我们也尝试过4.0.5)......结果相同。

在错误页面的最底部,显示以下内容......这可以解释一些事情? .NET 4.5.2在服务器上,但看起来网站未配置为使用它,可能是吗?:

版本信息: Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34274

  

' /'中的服务器错误应用

     

无法加载类型' ImageResizer.InterceptModule'。

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.Web.HttpException:无法加载类型' ImageResizer.InterceptModule'。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

     

堆栈追踪:

     

[HttpException(0x80004005):无法加载类型' ImageResizer.InterceptModule'。]      System.Web.Compilation.BuildManager.GetType(String typeName,Boolean throwOnError,Boolean ignoreCase)+12512121      System.Web.Configuration.ConfigUtil.GetType(String typeName,String propertyName,ConfigurationElement configElement,XmlNode node,Boolean checkAptcaBit,Boolean ignoreCase)+76

     

[ConfigurationErrorsException:无法加载类型' ImageResizer.InterceptModule'。]      System.Web.Configuration.ConfigUtil.GetType(String typeName,String propertyName,ConfigurationElement configElement,XmlNode node,Boolean checkAptcaBit,Boolean ignoreCase)+12425644      System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName,String propertyName,ConfigurationElement configElement)+69      System.Web.Configuration.Common.ModulesEntry..ctor(String name,String typeName,String propertyName,ConfigurationElement configElement)+62      System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList)+299      System.Web.HttpApplication.GetModuleCollection(IntPtr appContext)+1262      System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+133      System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+304      System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+404      System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+475

     

[HttpException(0x80004005):无法加载类型' ImageResizer.InterceptModule'。]      System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+12618980      System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+159      System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+12458597

的web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="resizer" type="ImageResizer.ResizerSection,ImageResizer" requirePermission="false" />
    </configSections>
    <resizer>
        <!-- Unless you (a) use Integrated mode, or (b) map all requests to ASP.NET, 
        you'll need to add .ashx to your image URLs: image.jpg.ashx?width=200&height=20 -->
        <pipeline fakeExtensions=".ashx" defaultCommands="autorotate.default=true" />
        <diskcache dir="/cache" />
        <plugins>
            <add name="DiskCache" />
            <!-- <add name="PrettyGifs" /> -->
            <!-- <add name="SimpleFilters" /> -->
            <!-- <add name="S3Reader" /> -->
        </plugins>
    </resizer>
    <system.web>
        <httpModules>
            <!-- This is for IIS7/8 Classic Mode and Cassini-->
            <add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules>
            <!-- This is for IIS7/8 Integrated mode -->
            <add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
        </modules>
    </system.webServer>
</configuration>

其他错误信息...

  

无法加载文件或程序集&#39; ImageResizer&#39;或其中一个依赖项。系统找不到指定的文件。

     

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集&#39; ImageResizer&#39;或其中一个依赖项。系统找不到指定的文件。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

     

装配加载跟踪:以下信息有助于确定装配&#39; ImageResizer&#39;无法加载。

     

警告:装配绑定日志记录已关闭。   要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。   注意:程序集绑定失败日志记录会导致一些性能损失。   要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。

2 个答案:

答案 0 :(得分:0)

即使我们的测试环境中有&#34; bin&#34;将文件夹设置为IIS中的虚拟目录,这在我们的生产环境中不起作用。它很可能与驱动器和站点根和内容的设置和存储方式有关。

测试VM:

IIS站点根目录 - &gt; X:\ some.site \ WWWW &#34;箱&#34;虚拟目录 - &gt; Y:\仓

Prod VM:

不起作用:

IIS站点根目录 - &gt; X:\ some.site \ wwww(这是SAN共享的符号链接) &#34;箱&#34;虚拟目录 - &gt; C:\仓

使用:

&#34;箱&#34;是站点根目录中的目录(在SAN共享上)

感谢Nathanael的帮助。

答案 1 :(得分:0)

对于我的情况,我不小心将IIS上的默认网站的目录更改为我的一个项目的根文件夹,其web.config文件包含ImageResizingModule。 我通过将IIS上的默认网站的物理路径更改为wwwroot文件夹来修复此问题。