为什么找不到我的模块?

时间:2013-02-02 22:46:00

标签: asp.net asp.net-mvc-4 basic-authentication

  

可能重复:
  Why can’t it find my BasicAuthenticationModule?

我正在尝试创建自己的基本身份验证实现。

BasicAuthenticationModule.cs存储了solution\Modules,其名称空间为:

namespace Web_API.Modules
{
    public class BasicAuthenticationModule : IHttpModule

我已将其添加到我的web.config中:

  <system.webServer>
    <modules>
      <add name="MyBasicAuthenticationModule" type="Web_API.Modules.BasicAuthenticationModule, BasicAuthenticationModule" />

运行时出现以下错误:

Server Error in '/' Application.

Could not load file or assembly 'BasicAuthenticationModule' or one of its dependencies. The system cannot find the file specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'BasicAuthenticationModule' or one of its dependencies. The system cannot find the file specified.

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您似乎为模块指定了错误的程序集名称。当你写:

type="Web_API.Modules.BasicAuthenticationModule, BasicAuthenticationModule"

这意味着在名为BasicAuthenticationModule的程序集中的Web_API.Modules名称空间内加载名为BasicAuthenticationModule的类。您在其中定义此类的项目是BasicAuthenticationModule吗?我猜不会。这就是ASP.NET无法加载模块的原因。您应该指定定义此模块的正确程序集名称。

例如,如果您的ASP.NET MVC应用程序被称为MvcAPplication1,则定义可能如下所示:

type="Web_API.Modules.BasicAuthenticationModule, MvcApplication1"

type属性的格式如下:

type="Namespace.ClassName, AssemblyName"