小编Jos*_*rce的帖子

ASP.NET MVC控制器生命周期

我的理解是,在每个Web请求期间都不会调用控制器的构造函数.假设这是真的,控制器的生命周期是什么?是应用程序启动时"构造",然后使用每个Web请求注入的requestcontext进行缓存和调用吗?

为了清楚起见,我不是在问如何模拟构造函数行为,我使用OnActionExecuting事件来启动我通常在构造函数中执行的操作.另外,我确实在控制器上使用构造函数进行单元和系统测试.

谢谢!

c# asp.net-mvc

63
推荐指数
3
解决办法
3万
查看次数

Sqlite DB锁定在Azure Dotnet核心实体框架上

我有一个简单的asp.net核心Web应用程序(v2.1),我在Linux上部署到B1(我试过B2)Azure App Service.当我调用时dbContext.SaveChanges(),在添加一个非常简单的实体之后,请求大约需要30秒才会抛出以下错误:

Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.

这是代码._dbContext注入了作用域生存期.

public async Task<IActionResult> SignIn([Bind("Email,Password,RedirectUrl")] SignInModel model) {
    if (ModelState.IsValid) {
        var user = _dbContext.Users.Include(u => u.Claims).FirstOrDefault(u => u.UserName == model.Email);

        ...

        user.LastLogin = DateTimeOffset.Now;
        await _dbContext.SaveChangesAsync();

        ...

        return Redirect(String.IsNullOrWhiteSpace(model.RedirectUrl) ? "/" : model.RedirectUrl); 
    }
    else {
        return View(model);
    }
}
Run Code Online (Sandbox Code Playgroud)

在30秒内,我通过SSH看到SQLite DB文件旁边存在日志文件.它最终被删除了.

更新:这是日志.您可以看到,在单次更新调用之后,将在30秒后抛出锁定异常.30秒是SQL命令超时.我正在使用远程SSH shell观察文件系统,日志文件在那里持续约30秒.这就像应用服务使用的网络共享和SQLite文件锁定逻辑的组合被破坏或非常慢.

2018-12-20T15:06:27.660624755Z [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
2018-12-20T15:06:27.660656156Z       Request starting HTTP/1.1 POST http://insecuresite.azurewebsites.net/Account/SignIn application/x-www-form-urlencoded 56
2018-12-20T15:06:27.660797960Z [15:06:27 DBG] InsecureSite.Middleware.MyCookieAuthHandler:Constructor called.
2018-12-20T15:06:27.660875561Z [15:06:27 DBG] InsecureSite.Middleware.MyCookieAuthHandler:Constructor called.
2018-12-20T15:06:27.660885462Z …
Run Code Online (Sandbox Code Playgroud)

linux sqlite azure docker entity-framework-core

18
推荐指数
1
解决办法
722
查看次数

在Celery任务中使用Django的ORM

Celery任务如何访问Django数据库抽象API?是否需要使用独立Django ORM使用策略之一从头开始编码,还是采用更简化的内置方式或常用方法?

似乎没有人问这个问题.但是,对我而言,这是至关重要的.

这个例子暗示它没什么大不了的,但有人可以解释一下Celery和Django之间的会话管理和ORM范围如何工作?

django django-models celery django-celery

13
推荐指数
2
解决办法
3926
查看次数

如何在aspnet vnext config.json文件中配置实体框架拦截器?

在Web配置文件中,我会这样做:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

<interceptors>
  <interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
    <parameters>
      <parameter value="C:\tmp\DataAccessLogOutput.txt" />
    </parameters>
  </interceptor>
</interceptors>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)

但是如何在vnext的config.json中执行此操作:

{
    "Data": {
        "DefaultConnection": { 
            "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=aspnet5-Cupcake-a652ca1c-0d92-4155-ad46-bfb68bb538ee;Trusted_Connection=True;MultipleActiveResultSets=true"
        }
    },
    "EntityFramework": {
        "ApplicationDbContext": {
            "ConnectionStringKey": "Data:DefaultConnection:ConnectionString",
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

entity-framework-core asp.net-core

8
推荐指数
1
解决办法
2033
查看次数

解释Jint如何工作

我想了解Jint是一个用C#编写的JavaScript Intrepreter是如何工作的.特别:

  1. 它如何利用Antlr?
  2. 哪些部分,如果有的话,或者这个项目是新颖的,哪些部分代表现有JS Intrepreter到C#.NET的端口?
  3. 一般来说,如何在C#中编写Javascript Intrepreter?例如,在技术和代码方面已有什么,你需要自己编写什么?
  4. 编写JS解释器最具挑战性的部分是什么?

javascript c# interpreter antlr jint

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

在最低安全性上下文中运行DLR嵌入式脚本

我需要指出正确的方向.我已经将Iron Python脚本主机嵌入到一个简单的C#应用​​程序中,但现在我需要了解锁定用户生成的IronPython或IronRuby脚本的安全性的最佳实践.

具体来说,什么是防止库导入的策略,并且在.NET中没有办法在不同的安全上下文中运行代码块或线程,例如防止文件系统访问?此外,是否可以为此上下文分配内置级别或角色而不是实际用户?

谢谢!

.net c# ironpython ironruby dynamic-language-runtime

3
推荐指数
1
解决办法
359
查看次数

在臂组件中分支

我正在使用GNU ARM工具链(arm-elf-gcc).我有一个汇编文件和一个调用汇编文件中定义的全局方法的c文件.我可以从c成功调用单个汇编方法,但我无法弄清楚如何调用自身调用另一个汇编方法的汇编方法.我希望这两个汇编方法都可以从c调用并且在同一个文件中.

这是两个文件.当我运行程序时,它永远不会返回,所以我知道分支中存在问题.

mathLib.s

@ ARM Assembler Library for absolute value

    .align 2                    @ Align to word boundary
    .arm                        @ This is ARM code
    .global asm_abs             @ This makes it a real symbol
    .global asm_two_abs         @ This makes it a real symbol

@ ABS Func. Compiler just does "rsblt   r0, r0, #0" but this is more fun.
    asm_abs:                        @ Start of function definition
        mov     r2, #1              @ Set the least bit high in r2
        mov     r2, r2, lsl#31      @ Shift …
Run Code Online (Sandbox Code Playgroud)

assembly arm

3
推荐指数
1
解决办法
6054
查看次数