最近公司配置一台新电脑,换了操作系统后发现出现了一个问题。问题如下:在组装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) { System.ManagedExtensibilityFramework.ComposableCatalog.ComposeParts(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> 节 https://msdn.microsoft.com/zh-cn/library/bb763179.aspx
时间: 2024-10-27 10:28:19