相关疑难解决方法(0)

升级到Web API 2后,HttpApplication.Application_Start未触发

我将应用程序升级到Web Api 2,并且Application_Start不会触发在IIS Express上运行的升级后.我的确遵循官方升级路径http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to- aspnet-mvc-5-and-web-api-2并检查了我的设置.

该应用程序使用StructureMap MVC 4来注入依赖项.因此,WebActivator的PreApplicationStartMethod会被触发,依赖项解析器也会被正确设置.之后,无法追踪其他执行.我已启用编辑并继续,但在Application_Start的开头没有命中断点.

以下是我尝试过的所有内容:禁用PreApplicationStartMethod并运行应用程序b.更改Global.asax的编译设置和c后面的代码.创建另一个具有类似结构的WebApi2项目,并设置减去实际代码,并且工作正常

我已经清理并运行了应用程序; 还清理了Temp ASP.NET文件夹

感谢帮助解决这个问题.

c# asp.net-web-api asp.net-mvc-5

10
推荐指数
2
解决办法
6867
查看次数

Unity使用参数将依赖项注入MVC​​过滤器类

我正在使用Unity.MVC4依赖注入来访问我的服务.注入到我的Controller构造函数中时,一切都正常,但我现在要做的是在我的过滤器类中使用属性注入,这样我就可以从内部访问我的数据库了.

在我开始这个问题之前,我用Google搜索并尝试了不同的示例,但我找不到适合我的解决方案..

Bootstrapper.cs

public static class Bootstrapper
{
    public static IUnityContainer Initialise()
    {
        var container = BuildUnityContainer();

        DependencyResolver.SetResolver(new UnityDependencyResolver(container));

        return container;
    }

    private static IUnityContainer BuildUnityContainer()
    {
        var container = new UnityContainer();
        container.RegisterType<IAccountRepository, AccountRepository>();
        container.RegisterType<IAdministrationRepository, AdministrationRepository>();
        container.RegisterType<IUploadDirectlyRepository, UploadDirectlyRepository>();
        container.RegisterType<IUserRepository, UserRepository>();
        container.RegisterType<INewsRepository, NewsRepository>();
        container.RegisterType<IContactRepository, ContactRepository>();

        // register all your components with the container here
        // it is NOT necessary to register your controllers

        // e.g. container.RegisterType<ITestService, TestService>();    
        RegisterTypes(container);

        return container;
    }

    public static void RegisterTypes(IUnityContainer container)
    { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dependency-injection unity-container action-filter asp.net-mvc-4

9
推荐指数
3
解决办法
8374
查看次数

当前类型IUserStore <ApplicationUser>和DbConnection分别是接口和抽象类,不能构造

如果我冲浪,http://localhost:58472/Account/Register我就有这个例外

System.InvalidOperationException:当前类型IUserStore<ApplicationUser>是一个接口,无法构造.你错过了类型映射吗?

这是我的代码:

public class ApplicationUserManager : UserManager<ApplicationUser>
{
    public ApplicationUserManager(IUserStore<ApplicationUser> store)
        : base(store)
    { }

    public static ApplicationUserManager Create(
        IdentityFactoryOptions<ApplicationUserManager> options, 
        IOwinContext context) 
    {
        var manager = new ApplicationUserManager(
            new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>())
        );

        // other code
        return manager;   
    }
}
Run Code Online (Sandbox Code Playgroud)

这里是控制器的代码:

[Authorize]
public class AccountController : Controller
{
    private ApplicationSignInManager _signInManager;
    private ApplicationUserManager _userManager;

    public AccountController()
    {
    }

    public AccountController(
        ApplicationUserManager userManager,
        ApplicationSignInManager signInManager)
    {
        UserManager = userManager;
        SignInManager = signInManager;
    }

    public ApplicationSignInManager SignInManager …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc user-management unity-container invalidoperationexception

5
推荐指数
1
解决办法
6062
查看次数

依赖项未正确注入 mvc 5、owin、unity

我正在使用 ASP.NET MVC 5、EF6、ASP.NET Identity 和 Unity 作为 IoC,并且我想在构建网站时使用 Identity 框架提供的功能来操作用户和注册。

启动文件

public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }

    public void ConfigureAuth(IAppBuilder app)
    {
        // Configure the db context, user manager and signin manager to use a single instance per request
        app.CreatePerOwinContext(DbContext.Create);
        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
        app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
        app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);



        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Auth/Login"),
            Provider = new CookieAuthenticationProvider
             {
                 // Enables the application to validate the security stamp when the user logs in.
                 // …
Run Code Online (Sandbox Code Playgroud)

c# unity-container owin asp.net-mvc-5 asp.net-identity-2

4
推荐指数
1
解决办法
2529
查看次数