最近公司配置一台新电脑,换了操作系统后发现出现了一个问题。问题如下:在组装MEF的Handler工厂出现异常,后来发现原来是配置文件问题。
出问题代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;namespace Acctrue._3DWHD.WebUI{public class MEFHttpHandlerFactory : IHttpHandlerFactory{public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated){PageHandlerFactory factory = (PageHandlerFactory)Activator.CreateInstance(typeof(PageHandlerFactory), true);IHttpHandler handler = factory.GetHandler(context, requestType, url, pathTranslated);Page page = handler as Page;if (page != null){poseParts(handler);}return handler;}public void ReleaseHandler(IHttpHandler handler){}}}
这里解决方法如下:
如果是 IIS 6.0 版本推荐用如下节点:
<!--适用于IIS6的配置--><system.web><httpHandlers><add verb="*" path="*.aspx" type="Acctrue._3DWHD.WebUI.MEFHttpHandlerFactory,Acctrue.3DWHD.WebUI"/></httpHandlers></system.web>
如果是 IIS 7.0+ 版本推荐用如下节点:
<!--适用于IIS7的配置(集成模式)--><system.webServer><handlers><add name="MEFHttpHandlerFactory" verb="*" path="*.aspx" type="Acctrue._3DWHD.WebUI.MEFHttpHandlerFactory,Acctrue.3DWHD.WebUI"/></handlers></system.webServer>
引用1:为 IIS 7.0 配置 <system.webServer> 节/zh-cn/library/bb763179.aspx