1

尝试进行以下转换:

CType(Context.Handler, MyCustomHandler)

但它会引发以下错误。

Unable to cast object of type 'ASP.MyWebForm_aspx' to type 'MyCustomHandler'.

甚至“Context.Handler”和“MyCustomHandler”都是 IHttpHandler 类型。

** MyCustomHandler 实现 IHttpHandler。

谢谢。

4

2 回答 2

1

我认为除了接口Handler公开的内容之外,可能还有更多的方法或属性。IHttpHandler尝试投射到IHttpHandler这个应该工作。

我认为您不能在实现接口的两个类之间进行转换,因为您不能在派生自抽象类的两个类之间进行转换,但是您可以将它们都转换为基类或接口

于 2013-01-30T17:21:08.147 回答
1

经过几个小时的努力,解决了这个问题。转换是合法的,但我注册的自定义处理程序符合 IIS6 和更早版本。由于我在集成模式下在 IIS7 上本地运行我的网站,它在 下的部分中查找已注册的处理程序,并且该处理程序未在此处注册。有两种可能的解决方案:

1) 在第 2 节中添加自定义处理程序
) 在 II7 中将集成更改为经典模式

我和第二个一起去了。

**这也解决了为什么当我使用 IIS6(经典)而不是本地(具有集成模式的 II7)在服务器上发布时它工作的问题

于 2013-01-31T10:26:17.943 回答