Web表单路由 - 无法创建抽象类

时间:2009-03-24 15:36:38

标签: c# asp.net asp.net-routing

Net 3.5 SP1并尝试将http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx的示例副本实施到示例Web应用程序中,但我似乎遇到了一些问题。

我正在运行Windows Vista,IIS 7.0,集成模式。

以下是YSOD:

  

无法创建抽象类。

     

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

     

异常详细信息: System.MissingMethodException:无法创建抽象类。

     

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

     

堆栈跟踪: [MissingMethodException:无法创建抽象类。]      System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandle& ctor,Boolean& bNeedSecurityCheck)+0      System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean fillCache)+86      System.RuntimeType.CreateInstanceImpl(Boolean publicOnly,Boolean skipVisibilityChecks,Boolean fillCache)+230      System.Activator.CreateInstance(Type type,Boolean nonPublic)+67      System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,Binder binder,Object [] args,CultureInfo culture,Object [] activationAttributes)+1051      System.Activator.CreateInstance(Type type,BindingFlags bindingAttr,Binder binder,Object [] args,CultureInfo culture,Object [] activationAttributes)+111      System.Web.Configuration.HandlerFactoryCache..ctor(String type)+57      System.Web.HttpApplication.GetFactory(String type)+78      System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+229      System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+155

我有一个看起来像这样的界面:

public interface IRoutablePage : IHttpHandler
{
    UrlHelper Url { get; }
    HtmlHelper Html { get; }
    RequestContext RequestContext { get; set;}
}

我有一个继承此接口的抽象类(RoutablePage)和System.Web.UI.Page。

然后我有一个网页(附加到母版页),它继承了RoutablePage类。

我在网络配置中设置了路线,当我尝试访问http://local.url/pageName时,我会通过上述信息体验YSOD。

有人可以帮忙解决这个问题吗?

干杯

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。我能够在这个论坛上找到答案http://forums.asp.net/t/1272109.aspx

交叉发布帮助我的内容:

  

在Web.config中 - > system.webserver - >   处理程序,替换

  <add name="UrlRoutingHandler"
 preCondition="integratedMode" verb="*"
 path="UrlRouting.axd"
 type="System.Web.Routing.UrlRoutingHandler,
 System.Web.Routing, Version=0.0.0.0,
 Culture=neutral,
 PublicKeyToken=31BF3856AD364E35"/>
  

使用:

  <add name="UrlRoutingHandler"
 preCondition="integratedMode" verb="*"
 path="UrlRouting.axd"
 type="System.Web.HttpForbiddenHandler,
 System.Web, Version=2.0.0.0,
 Culture=neutral,
 PublicKeyToken=b03f5f7f11d50a3a" />

答案 1 :(得分:0)

问题已暂时解决。在IIS7下运行网站会导致上述问题,并使用cassini运行网站,每次运行都按预期运行,没有错误。

但是,有关此问题的任何进一步信息都将受到赞赏。