小编Sha*_*der的帖子

如何将HttpContext.Current传递给在.net中使用Parallel.Invoke()调用的方法

我有两个方法,它们使用HttpContext.Current来获取userID.当我单独调用这些方法时,我得到userID,但是当使用Parallel.Invoke()调用相同的方法时,HttpContext.Current为null.

我知道原因,我只是在寻找可以访问HttpContext.Current的工作.我知道这不是线程安全的,但我只想执行读操作

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Display();
            Display2();
            Parallel.Invoke(Display, Display2);
        }

        public void Display()
        {
            if (HttpContext.Current != null)
            {
                Response.Write("Method 1" + HttpContext.Current.User.Identity.Name);
            }
            else
            {
                Response.Write("Method 1 Unknown" );
            }
        }

        public void Display2()
        {

            if (HttpContext.Current != null)
            {
                Response.Write("Method 2" + HttpContext.Current.User.Identity.Name);
            }
            else
            {
                Response.Write("Method 2 Unknown");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

c# asp.net httpcontext task-parallel-library

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

跨浏览器刷新在JavaScript对象中保留值

我创建了一个JavaScript对象.

var myObj = {};
Run Code Online (Sandbox Code Playgroud)

现在,当用户使用应用程序时,我们会为此对象分配一些值.

myObj['Name'] = 'Mr. Gates';
myObj['Age'] = 58;

...
...
...
myObj['Role'] = 'CEO';
Run Code Online (Sandbox Code Playgroud)

但无论何时页面刷新,对象都会丢失其值.

是否有任何方法可以使用HTML 5 \或任何其他技术在页面刷新期间保留这些值.

javascript jquery html5 persistent-storage

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

读取ASP.NET WEB API中的每个传入请求(URL)

我在使用ASP.NET MVC框架.在此框架中,我们检查了某些密钥的每个传入请求(url)并将其分配给属性.我们创建了一个自定义类,它派生自Controller类&我们覆盖 OnActionExecuting()以提供我们的自定义逻辑.

我们如何在ASP.NET WEB API中实现相同的目标?

//Implementation from ASP.NET MVC

public class ApplicationController : Controller
{       
    public string UserID { get; set; }

    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (!string.IsNullOrEmpty(Request.Params["uid"]))
            UserID = Request.Params["uid"];

        base.OnActionExecuting(filterContext);
    }    
}
Run Code Online (Sandbox Code Playgroud)

我在ASP.NET WEB API中尝试过的: - 虽然这是有效的,但我想知道这是否是正确的方法?

创建了一个基本控制器

public class BaseApiController : ApiController
    {
        public string UserID { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

创建了另一个继承ActionFilterAttribute类的类,我重写了OnActionExecuting()

public class TokenFilterAttribute : ActionFilterAttribute
    {
       public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
            {
                var queryString = actionContext.Request.RequestUri.Query; …
Run Code Online (Sandbox Code Playgroud)

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

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

ExtJS 4.1 treepanel - 扩展treepanel导致重复记录

我正在使用ExtJS 4.1.我有一个TreePanel,它绑定到两个TreeStore之一.重新绑定商店并展开折叠节点后,记录重复,我看到错误Uncaught TypeError: Cannot read property 'internalId' of undefined

另一个问题是,我只能绑定商店一次.当我第二次调用treePanel.setRootNode()时它不起作用(无论我是否扩展节点).

看看这个小提琴

这是代码:

var sportsStore = Ext.create('Ext.data.TreeStore', {
  root: {
    expanded: true,
    id: 133,
    children: [{
        text: "Audi",
        id: 1,
        leaf: true
      },
      {
        text: "sports cars",
        expanded: true,
        id: 2,
        children: [{
            id: 3,
            text: "Porsche",
            leaf: true
          },
          {
            text: "Mustang",
            id: 4,
            leaf: true
          }
        ]
      },
      {
        text: "Jaguar",
        id: 5,
        leaf: true
      }
    ]
  }
});


var carStore = Ext.create('Ext.data.TreeStore', {
  root: {
    expanded: …
Run Code Online (Sandbox Code Playgroud)

extjs extjs4 extjs4.1

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

Visual Studio 2019 的离线构建工具

我正在尝试从https://visualstudio.microsoft.com/downloads/下载Visual Studio 2019 的构建工具但是当我单击下载按钮时,系统会下载一个 exe,该 exe 尝试连接到 Internet 以下载软件包的其余部分。

我如何才能获得离线版本的 Visual Studio 2019构建工具Visual Studio 2017 构建工具

.net c# msbuild msbuild-task visual-studio-2017-build-tools

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

使用C#将数据表的结果转换为树

我有一个包含4列的数据集.名称,密钥,parentKey,级别.我需要将此DataTable转换为树结构.我附上一张图片,可以让你知道我想做什么.将DataTable转换为可用于生成树结构的对象的最有效方法是什么.请帮忙.

请注意:数据可以在DataTable中以任何顺序出现.是否可以在第一级列上然后在parentKey列上对dataTable进行排序?我想,如果我能做到这一点,将输出转换为树结构会很容易.

在此输入图像描述

我添加了一个模仿数据集的类,我已经在数据表中对数据进行了排序.

namespace SortDataTable
{


    public class Program
    {
        private static void Main(string[] args)
        {
            DataTable table = new DataTable();
            table.Columns.Add("Name", typeof (string));
            table.Columns.Add("Key", typeof (string));
            table.Columns.Add("ParentKey", typeof (string));
            table.Columns.Add("Level", typeof (int));


            table.Rows.Add("A", "A1", null, 1);
            table.Rows.Add("B", "A2", "A1", 2);
            table.Rows.Add("C", "A3", "A1", 2);
            table.Rows.Add("D", "A4", "A1", 2);

            table.Rows.Add("E", "A5", "A2", 3);
            table.Rows.Add("F", "A6", "A5", 4);
            table.Rows.Add("G", "A7", "A3", 3);
            table.Rows.Add("H", "A8", "A4", 3);


            table.Rows.Add("I", "A9", "A4", 3);
            table.Rows.Add("J", "A10", "A4", 3);
            table.Rows.Add("K", "A11", "A10", 4);
            table.Rows.Add("L", "A12", …
Run Code Online (Sandbox Code Playgroud)

c# datatable treeview tree dataset

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

Ext.data.Store的each()忽略了过滤后的记录

我正在使用Ext.data.Store的each().但是,当过滤存储时,此方法仅循环遍历过滤的记录.即使在商店中应用过滤器,我们是否有任何其他方法或解决方法来遍历商店的所有记录.

  var attStore = Ext.getStore("myStore");
        var allRecords = attStore.snapshot || attStore.data;
        allRecords.each(function (record) {
            if (record.data.IsUpdated) {
                record.set('updatedByUser', true);
            }
            else {
                record.set('updatedByUser', false);
            }
             record.commit();
        });
Run Code Online (Sandbox Code Playgroud)

该行 var allRecords = attStore.snapshot || attStore.data;实际上按预期返回所有记录,但是当我尝试使用record.data.property = something更新该记录(或该记录中的一个属性)时,该记录没有得到更新.

谢谢

extjs extjs4.1 extjs-stores

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

Topshelf超时问题

我们正在使用Topshelf来托管服务.在启动服务之前,我们正在进行数据库调用以加载大量数据.因此,在启动服务时,我们遇到以下错误:

Start Service failed with return code '[7] ServiceRequestTimeout
Run Code Online (Sandbox Code Playgroud)

我们使用以下代码来启动服务:

HostFactory.Run(x =>
            {
                x.Service<AppService>(s =>
                {
                    s.ConstructUsing(name => new AppService(s_resolver, baseAddress, resolver));
                    s.WhenStarted(svc => svc.Start());
                    s.WhenStopped(svc => svc.Stop());
                    s.WhenShutdown(svc => svc.Shutdown());
                });

                x.EnableShutdown();
                x.RunAsLocalService();
                x.StartAutomatically();
                x.SetDisplayName("Application Host");
                x.SetDescription("Application Host");
            });
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用Visual Studio启动服务,服务运行正常.但是当服务通过Topshelf托管时,我就错过了时间.

我也试过使用hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(300)) 但是即使添加了额外的超时时间后,我也无法解决问题.请提供您的建议.

.net windows-services topshelf

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

HTTP 动词 - 何时使用 GET/POST/PUT/Delete

当您在 RESTFUL 服务上工作时,您经常会听到这些术语GET/POST/PUT/DELETE。我的问题是这么多动词背后的想法是什么?我可以在GET动词的帮助下完成所有事情,或者如果我想在消息正文中发布一些大数据,我可以使用POST动词。我认为没有必要超越这两个动词。

关于何时使用哪个动词,我们是否有任何一般准则?使用一个动词比使用另一个有什么优势吗??

PS:我知道背后的想法

GET : Get object
PUT : Modify Object
DELETE: Delete Object
POST : Create Object
Run Code Online (Sandbox Code Playgroud)

rest post get put restful-architecture

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

通过将字符串附加到对象来生成javascript对象名称

我正在获取一个Javascript对象req.files.该对象下可以有多个文件.req.files是一个object 而不是一个 array.

因此,如果用户添加了三个文件,该对象将如下所示:

req.files.file0
req.files.file1
req.files.file2
Run Code Online (Sandbox Code Playgroud)

where file0, file1等是另一个对象.

用户最多可以添加15个文件.如何检查这些对象的循环并从req.files.fileX读取信息?我需要支持IE 11和chrome.

javascript jquery node.js

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