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]。
答案 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文件夹来修复此问题。