IHttpModule won't compile


Eric Goforth


I found a C# example on the web that used an httpmodule. I've
translated it to VB.NET and the website compiles fine, but when I
build the website the iHttpModule doesn't compile, I can't figure out
why. I do have the following entry in my web.config file:


My iHttpModule Class implements iHttpModule (of course). I also have
an Init method that Implements IHttpModule.Init and Dispose method
that Implements IHttpModule.Dispose.

I think that my problem may be the syntax in the httpModules section
of the web.config file. My site is structured like:









MyModule.vb looks like:

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Text
Imports System.Threading
Imports System.IO
Imports System.Reflection
Imports System.Web
Imports System.Xml
Imports System.Xml.XPath

'Namespace MyModule
Public Class MyModule
Implements IHttpModule, IConfigurationSectionHandler

Public Sub Dispose() Implements IHttpModule.Dispose
' add clean-up code here if required
End Sub
Public Sub Init(ByVal app As HttpApplication) Implements
' add init code here if required
End Sub

End Class
'End Namespace

The code example that I found originally had this module in it's own
namespace, but I commented that out to try to simplify things. I was
thinking about trying to "flatten" the file structure and put MyModule
in the same virtual folder as the .aspx and .aspx.vb files.





Teemu Keiski

If this module code is in App_Code and has no namespace, type="MyModule" in
<add> is enough. If you have web site project, it (the class file) cannot
reside at same level with the pages etc since it won't get compiled. With
web project the type is built into a dll, and you need to specify the
assembly name (dll's name) in type attribute

type="MyModuleNamespace.MyModule, MyModuleAssembly"

when your module has MyModuleNamespace namespace, its name is MyModule and
it resides in MyModuleAssembly.dll

If you have the module in same dll with web project, it is the web
application's single dll which you should specify into type.

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question