无法使用 Visual Studio 2013 调试 IIS 8.5 中托管的 sitefinity 站点的 httpModule

Unable to debug httpModule of a sitefinity site hosted in IIS 8.5 using Visual Studio 2013

我正在尝试使用 Visual Studio 2013 调试托管在 IIS 8.5 中的 sitefinity 站点的 httpModule。我正在使用 Sitefinity 8.1 进行站点开发。

到目前为止我所做的事情:

  1. 在 sitefinity 站点的根文件夹下创建了一个 httpModule。代码如下:
public class UserRoleHttpModule : IHttpModule
{            
    public void Init(HttpApplication application)
    {
        application.PostAuthenticateRequest +=
            (new EventHandler(this.PostAuthenticateRequest));
    }

    private void PostAuthenticateRequest(Object source,
                                         EventArgs e)
    {
        UserManager userManager = UserManager.GetManager();
        RoleManager roleManager = RoleManager.GetManager(SecurityManager.ApplicationRolesProviderName);
        roleManager.Provider.SuppressSecurityChecks = true;

        string[] rolesToAdd = new string[] {"BackendUsers"};

        if (userManager.UserExists("rahuln"))
        {
            User user = userManager.GetUser("rahuln");

            foreach (var roleName in rolesToAdd)
            {
                if (roleManager.RoleExists(roleName))
                {
                    Role role = roleManager.GetRole(roleName);
                    roleManager.AddUserToRole(user, role);
                }
            }
        }

        roleManager.SaveChanges();
        roleManager.Provider.SuppressSecurityChecks = false;
    }          

    public void Dispose()
    {
    }
}
  1. 在webconfig下注册模块
<modules runAllManagedModulesForAllRequests="true">        
            <remove name="UserRoleHttpModule" />
            <add name="UserRoleHttpModule" type="SitefinityWebApp.UserRoleHttpModule"/>
</modules>

现在,当我 运行 来自 IIS 的页面并在 visual studio 中使用 w3wp.exe 执行 "attach to process" 时。我在 httpModule 中的断点从来没有遇到过问题。我尝试构建解决方案并且构建成功。

任何帮助将不胜感激。

谢谢

您确定 HttpModule 正在执行,以验证将以下内容添加到 PostAuthenticateRequest,如果是,它应该重定向到 microsoft.com。

HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Redirect("http://www.microsoft.com");