Iis 7 IIS 7.5上的MVC5引发异常:无法加载类型HttpRedirect
我已将MVC5应用程序很好地部署到本地IIS8(Windows 8),但部署到Windows Web Server 2008 SP1后无法工作 我得到的错误是:Iis 7 IIS 7.5上的MVC5引发异常:无法加载类型HttpRedirect,iis-7,asp.net-mvc-5,http-redirect,Iis 7,Asp.net Mvc 5,Http Redirect,我已将MVC5应用程序很好地部署到本地IIS8(Windows 8),但部署到Windows Web Server 2008 SP1后无法工作 我得到的错误是: Exception Details: System.Web.HttpException: Could not load type 'HttpRedirect'. Stack Trace: [HttpException (0x80004005): Could not load type 'HttpRedirect'.] Syste
Exception Details: System.Web.HttpException: Could not load type 'HttpRedirect'.
Stack Trace:
[HttpException (0x80004005): Could not load type 'HttpRedirect'.]
System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +9671464
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +38
[ConfigurationErrorsException: Could not load type 'HttpRedirect'.]
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +359
System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit) +19
System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +39
System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +42
System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +160
System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +950
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +82
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296
[HttpException (0x80004005): Could not load type 'HttpRedirect'.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9915300
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254
我阅读了多篇文章,检查了IIS上的设置,重新安装了NET Framework(4,4.5,4.5.1),并使用c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u regiis.exe-ir在IIS中注册
我还尝试使用标准的ASP.NET网站MVC2/3/4和MVC2/5部署几个不同的测试应用程序。所有这些都以同样的错误告终。使用Net4的Win表单在此服务器上运行良好
有趣的是,我在网上找不到任何与加载“HttpRedirect”类型问题直接相关的文章。服务器上安装了HttpRedirect角色
不知道下一步该怎么办。第二天就要打仗了,我的点子都快用完了。要找到在机器上运行MVC的详细要求也不容易,或者只有我和星期五:-)
更新:
来自FUSLOGVW的日志
*装配活页夹日志条目(2014年6月27日@15:20:31)*
手术是成功的。绑定结果:hr=0x0。手术
已成功完成
从以下位置加载程序集管理器:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll运行于
可执行文件C:\Windows\SysWOW64\inetsrv\w3wp.exe
---下面是详细的错误日志
===预绑定状态信息===日志:DisplayName=System.Web.Http(部分)警告:已为
程序集:WRN:assembly Name:System.Web.Http |域ID:6 WRN:A
当仅显示部件显示名称的一部分时,会发生部分绑定
假如警告:这可能导致活页夹加载错误
装配警告:建议提供完全指定的文本
程序集的标识,WRN:由简单名称组成,
版本、区域性和公钥令牌。警告:见白皮书
有关更多信息和
这一问题的共同解决办法。日志:Appbase=
file:///D:/sitesource/mysite/CM3Management/ 日志:初始私有路径=
D:\sitesource\mysite\CM3Management\bin日志:动态库=
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
文件\cm3管理\bf917f7b日志:缓存库=
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
文件\cm3management\bf917f7b日志:AppName=871e80调用程序集:
(不详)。
==日志:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:
D:\sitesource\mysite\CM3Management\web.config日志:使用主机
配置文件:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config日志:使用
来自的计算机配置文件
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。
日志:此时未将策略应用于引用(私有,
自定义、部分或基于位置的部件绑定)。日志:正在尝试
下载新网址
file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary
ASP.NET文件/cm3management/bf917f7b/871e80/System.Web.Http.DLL。日志:
正在尝试下载新的URL
file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary
ASP.NET
文件/cm3management/bf917f7b/871e80/System.Web.Http/System.Web.Http.DLL。
日志:正在尝试下载新URL
file:///D:/sitesource/mysite/CM3Management/bin/System.Web.Http.DLL.
日志:程序集下载成功。正在尝试安装文件:
D:\sitesource\mysite\CM3Management\bin\System.Web.Http.dll日志:
进入下载缓存设置阶段。日志:程序集名称为:
System.Web.Http,版本=4.0.0.0,区域性=中性,
PublicKeyToken=31bf3856ad364e35日志:部分指定的程序集
从应用程序目录绑定成功。需要重新申请吗
政策。日志:使用应用程序配置文件:
D:\sitesource\mysite\CM3Management\web.config日志:使用主机
配置文件:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config日志:使用
来自的计算机配置文件
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config。
日志:发布策略参考:System.Web.Http,版本=4.0.0.0,
区域性=中性,PublicKeyToken=31bf3856ad364e35日志:GAC查找失败
不成功的日志:绑定成功。从返回程序集
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
文件\cm3management\bf917f7b\871e80\assembly\dl3\4ba23522\3f728a19\U 6f7acf01\System.Web.Http.dll。
日志:在默认加载上下文中加载程序集
类似的问题“部分加载的程序集”仅在我的情况下影响System.Web.Http上的更多程序集。到目前为止,我检查的所有日志都有类似的外观
我还想添加一个内容,即我尝试在System.Web.Http程序集的“copy local”打开然后关闭的情况下发布。这没什么区别。复制所有程序集的本地文件也没有帮助。能否在服务器上运行
fuslogvw
,查看查找路径是否存在问题?听起来像是DLL被丢失或加载了一个不好的版本。谢谢你的评论。隧道里有灯光,因为日志显示了一些关于部分加载组件的信息。还不确定是什么。如果你想看一看的话,我现在已经把日志附在了主帖子上了。所以看起来应该怪System.Web.Http
。在编译时,您是否看到关于“在同一程序集的不同版本之间发现冲突…”的任何警告?VS2013提供了一些关于这类事情的好信息,使得指定
非常容易。理想情况下,在
节点中应该有类似于
的内容。此外,假设问题得到解决,请确保禁用fuslogvw
。这是一个很大的开销,所以最好在它达到目的后消除它。我将它部署到另一台机器上。我的本地应用程序运行windows 8,当部署到本地IIS8时,该应用程序运行良好。部署后,它仅在测试环境中中断。