小编bev*_*qua的帖子

VS Post Build Event,复制解决方案文件夹上一级?

我现在有

  <PropertyGroup>
    <PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Shared.Lib\$(TargetFileName)"</PostBuildEvent>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情,但是上面一层 $(SolutionDir)

post-build-event visual-studio

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

Thread.CurrentPrincipal.Identity vs HttpContext.User.Identity

可能重复:
http.context.user和thread.currentprincipal之间的区别以及何时使用它们?

这两个在ASP.NET应用程序中有什么区别?

我知道在HttpContext.User.Identity用户通过身份验证时设置了FormsAuthentication.但什么时候Thread.CurrentPrincipal.Identity设置?

他们总是保持相同的价值吗?

对于无法访问的应用程序的其他层,这仍然适用HttpContext吗?

.net c# asp.net current-principal form-authentication

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

使用没有RequireJS的角度Dragula

我希望使用angular-dragula模块(https://github.com/bevacqua/angular-dragula)在我的Angular项目中实现Drag and Drop .但是,它似乎严重依赖于RequireJS.我没有使用Require一段时间,只有一两个示例应用程序.有没有一种简单的方法来解开这个模块的需求?

作者似乎认为它很简单(https://github.com/bevacqua/angular-dragula/issues/23)并且在没有真正解释的情况下也关闭了类似的问题.我查看了代码,但没有看到如何加载模块而没有将RequireJS添加到我的项目中(我不想这样做).我是否坚持使用不使用此模块或添加Require或是否有办法在没有要求的情况下使用此模块?

javascript requirejs angularjs dragula

13
推荐指数
1
解决办法
2637
查看次数

c#向Windows用户授予"作为服务登录"权限

如何为用户授予服务的LogOnAsService权限?

我需要手动执行此操作,在services.msc应用程序中我可以转到服务,更改密码(设置与之前相同),单击"应用"并收到消息:

帐户.\ postgres已被授予登录身份服务权限.

我如何从代码中执行此操作,因为否则每次运行应用程序时我都必须手动授予此权限,这不可能

@Steve

    static void Main()
    {
        // irrelevant stuff

        GrantLogonAsServiceRight("postgres");

        // irrelevant stuff
    }

    private static void GrantLogonAsServiceRight(string username)
    {
        using (LsaWrapper lsa = new LsaWrapper())
        {
            lsa.AddPrivileges(username, "SeServiceLogonRight");
        }
    }
Run Code Online (Sandbox Code Playgroud)

和这个家伙威利的LSA lib.

.net c# windows-services

12
推荐指数
1
解决办法
7080
查看次数

从WinForms应用程序重新启动计算机?

现在我正在使用以下代码重新启动我的应用程序

private static void Restart()
{
    ProcessStartInfo proc = new ProcessStartInfo();
    proc.WindowStyle = ProcessWindowStyle.Hidden;
    proc.FileName = "cmd";
    proc.Arguments = "/C shutdown -f -r -t 5";
    Process.Start(proc);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这显示一个"Windows将灾难性地重新启动5 ... 4 ... 3 ......"类型的对话框,非常让人想起Blaster,我怎么能无声地重启Windows,没有任何对话框弹出?

更新:伙计,,这是安装程序,它不"只是重新启动你的计算机",它完成安装,然后询问你是否要重新启动,如果你这样做,那么它确实如此,但它没有需要任何糟糕的系统对话框,告诉你在重启之前等待X时间.

c# windows restart

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

LINQ Count()直到,这样效率更高吗?

假设我想检查集合中是否至少有N个元素.

这比做好吗?

Count() >= N

使用:

    public static bool AtLeast<T>(this IEnumerable<T> enumerable, int max)
    {
        int count = 0;
        return enumerable.Any(item => ++count >= max);
    }
Run Code Online (Sandbox Code Playgroud)

甚至

    public static bool Equals<T>(this IEnumerable<T> enumerable, int amount)
    {
        return enumerable.Take(amount).Count() == amount;
    }
Run Code Online (Sandbox Code Playgroud)

我怎么能对此进行基准测试

    /// <summary>
    /// Returns whether the enumerable has at least the provided amount of elements.
    /// </summary>
    public static bool HasAtLeast<T>(this IEnumerable<T> enumerable, int amount)
    {
        return enumerable.Take(amount).Count() == amount;
    }

    /// <summary>
    /// Returns whether the enumerable …
Run Code Online (Sandbox Code Playgroud)

c# linq performance ienumerable micro-optimization

11
推荐指数
1
解决办法
1584
查看次数

当请求中止时,IIS/C#中会发生什么

所以我正在考虑用户粘贴链接的功能,服务器端代码抓取提供的链接并响应该链接的内容(例如页面标题,描述,缩略图等).

用户可以同时更改链接,并且在这样做时,ajax-request应该在客户端中止.

我想知道IIS服务器到底发生了什么,特别是我的C#代码.

  • 响应线程是否终止?
  • Response对象现在是否返回null,或者Response.Write是否抛出异常?
  • 响应线程中抛出异常只是在哪里?(那个甚至没有意义,但无论如何)

c# iis ajax xmlhttprequest

11
推荐指数
1
解决办法
2707
查看次数

使用Moq和TDD,从哪里开始?

我有一个服务器应用程序,我想知道如果我想开始实现TDD和使用Moq我应该从哪里开始.

我能读到哪些关于这个主题的好书,哪些不太"面向网络"?

我对此事有疑问,例如:

我应该模拟我想要测试的每个对象,还是只有那些我无法实现的对象,比如文本编写者?

我的服务器需要进行大量的设置才能真正做我想要测试的任何事情,我应该把它塞进一个[TestInitialize]函数中吗?

如果我想测试更深入的功能,我应该如何链接我的测试?

c# tdd unit-testing moq

10
推荐指数
3
解决办法
5079
查看次数

ASP.NET MVC全局错误处理

我有一个自定义HandleError属性来处理MVC管道上的错误; 我有一个protected void Application_Error(object sender, EventArgs e)方法Global.asax来处理来自管道外部的错误.

我遇到过一个我不知道可能的情景; 在实现DI时,存在对a的依赖性connectionString,该依赖性取自应用程序配置文件.

由于连接字符串尚不存在,因此在创建控制器时会出错,这通常会使Application_Error处理程序触发,并呈现正确的错误页面(通过将部分视图呈现为字符串并将其作为响应发送,以防万一这失败了它只是写了"致命异常."的回应.

除了在这种情况下,我得到了虚假的默认ASP.NET"运行时错误"黄色死亡屏幕.告诉我:

运行时错误

说明:服务器上发生应用程序错误.此应用程序的当前自定义错误设置可防止查看应用程序错误的详细信息.

详细信息:要在本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前Web应用程序根目录中的"web.config"配置文件中创建标记.然后,此标记应将其"mode"属性设置为"RemoteOnly".要使详细信息可在远程计算机上查看,请将"mode"设置为"Off".

我没有defaultRedirect设置customErrors,也没有设置Off,因为我不想重定向,而是在用户所在的同一页面上呈现错误,避免了不必要的重定向.

我该如何处理这样的场景?甚至是什么原因导致它以这种方式运行而不像控制器之外的任何其他错误?

我意识到它不太可能经常发生,但我希望能够阻止YSOD(部分原因是因为我想隐藏我正在使用的技术,但主要是因为它不是很漂亮,也不是用户友好的)

我甚至尝试为UnhandledExceptions注册一个处理程序,但它也没有触发.

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Run Code Online (Sandbox Code Playgroud)

最终产生这个的代码是:

return ConfigurationManager.ConnectionStrings[key].ConnectionString;,这里ConnectionStrings[key]null.

更新

这是应用程序错误的处理方式:

    protected void Application_Error(object sender, EventArgs e)
    {
        this.HandleApplicationError(new ResourceController());
    }

    public static void HandleApplicationError(this HttpApplication application, BaseController controller)
    {
        if (application == null)
        {
            throw new ArgumentNullException("application");
        }
        if (controller == null)
        { …
Run Code Online (Sandbox Code Playgroud)

c# error-handling asp.net-mvc-3

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

如何在ASP.NET MVC中保持控制器小?

我有一个设计精良的架构,控制器访问服务,这些服务访问与数据库通信的存储库.

因此,控制器中的逻辑保持在最低限度,但我仍然有非常微妙的代码片段来执行某些任务

  • 验证模型
  • 安排动作方法参数
  • 使用这些参数调用某些服务,如果模型现在无效,则可以验证结果并返回视图
  • 最后从服务的结果中生成一个模型,然后返回.

一些较长的情况根据服务返回的"状态"执行不同的操作.

这里有几个例子:

[HttpPost]
[AjaxOnly]
[Authorize]
public JsonResult Preview(string input)
{
    LinkResult parsed = linkService.ParseUserInput(input);
    if (parsed.Result == LinkParseResult.Used)
    {
        long? postId = parsed.Link.PostId;
        if (postId.HasValue)
        {
            Post post = postService.GetById(postId.Value, false);
            return Json(new
            {
                faulted = "used",
                link = DetailsRoute(post),
                id = postId
            });
        }
        else
        {
            return Json(new { faulted = "invalid" });
        }
    }
    else if (parsed.Result == LinkParseResult.Invalid)
    {
        return Json(new { faulted = "invalid" });
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

c# refactoring controller asp.net-mvc-3

10
推荐指数
1
解决办法
2906
查看次数