小编use*_*004的帖子

使用NLog的Ninject记录器

我刚开始学习Ninject但是遇到了记录器的问题.我目前有一个控制器,它有一个服务和记录器注入到构造函数中,如下所示:

public ToolsController(IToolsService toolsService, ILogger logger)
{
    logger.Info("ToolsController Created");
    this.toolsService = toolsService;
    this.logger = logger;
}
Run Code Online (Sandbox Code Playgroud)

问题出在构造函数中的logger.Info行(例如),它似乎使用了错误的记录器,因此它打印出的记录器名称不正确.

Tools.IGeocodeImporter: ToolsController Created 
Run Code Online (Sandbox Code Playgroud)

以下是如何设置获取记录器名称:

kernel.Bind<ILogger>().To<Logger>().WithConstructorArgument("name", x => x.Request.ParentContext.Request.Service.FullName);
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激.

c# ninject nlog

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

Visual Studio Post Build复制命令错误MSB3073退出代码1

所以我有C++ Player项目,它有2个其他项目依赖项,这两个项目依赖项都有后期构建事件将dll复制到另一个文件夹.该项目正在建设中,然后它决定不随机工作,从那时起我就没有找到解决方案.即使从SVN清理结账,它仍然无法正常工作,除了我之外,它适用于所有其他开发人员.

我已经检查了错误消息中的路径,它们确实存在,目标dll也是如此.

每个依赖项目中的构建后事件:

copy $(TargetPath) $(ProjectDir)..\..\$(Configuration)\plugins\$(ProjectName).dll
Run Code Online (Sandbox Code Playgroud)

结果错误:

错误MSB3073:命令"copy C:\ CMDev\CM2\Client\Apps\SSEP\Player\ACRP\CIAP\Debug\CIAP.dll C:\ CMDev\CM2\Client\Apps\SSEP\Player\ACRP\CIAP. ...\Debug\plugins\CIAP.dll:VCEnd"退出代码1. C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets 131 5

目前的设置:

  • 运行Windows 7 Ultimate Service Pack 1
  • Visual Studio Pro v12.0.30723.00 Update 3,在Administrator下运行.

我试过了什么:

  • 将Visual Studio 2013 Pro更新为更新3(来自更新1)
  • 使用/ Y参数包围每个路径周围的引号,例如copy/Y"source""destination"
  • 试过xcopy.
  • 尝试清理并重新构建eaach依赖项.
  • 卸载了Visual C++ 2010和2012,x86和x64 Redistributable,并重新安装了所有4个版本.

我还能尝试什么?

c++ visual-studio-2013

6
推荐指数
1
解决办法
2万
查看次数

从Context/Cookie访问WebAPI中的用户数据

更新:

我已将代码更改为FormsAuthentication.SetAuthCookie(_model.UserName, true);.我有2个Web.config文件,1个用于MVC,另一个用于WebAPI.在MVC配置中,我定义了

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

两个应用程序都在同一个域中.


更新:我们是否应该在WebAPI中使用Cookie?


目前,我有一个MVC项目,它使用表单身份验证和WebAPI项目.问题是我无法在WebAPI项目中获得与请求关联的用户.我认为这是可能的,或者实施可能是错误的?

注意:我把cookie代码放在WebAPI控制器方法中作为测试,它不应该在哪里.

MVC - 处理登录请求,创建身份验证票证.

// POST: /Account/Login
[AllowAnonymous]
[HttpPost]
public ActionResult Login(LoginModel _model, string _returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(_model.UserName, _model.Password))
        {
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(_model.UserName, true, 15);
            string encryptedTicket = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
            Response.Cookies.Add(cookie);

            // set redirect
        }
    }

    // If we got this far, something failed, redisplay form
    return View(_model);
}
Run Code Online (Sandbox Code Playgroud)

WebAPI - 处理更新请求

[AcceptVerbs("PUT")]
public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-web-api

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