小编Seb*_*hle的帖子

使用twitter bootstrap的Clearfix

我有一个twitter bootstrap的问题,对我来说有点奇怪.我有一个侧边栏固定在左侧和主要区域.

<div>
  <div id="sidebar">
    <ul>
      <li>A</li>
      <li>A</li>
      <li>C</li>
      <li>D</li>
      <li>E</li>
      <li>F</li>
      <li>...</li>
      <li>Z</li>
    </ul>
  </div>
  <div id="main">
    <div class="clearfix">
      <div class="pull-right">
        <a>RIGHT</a>
      </div>
    </div>
  <div>MOVED BELOW Z</div>
</div>
Run Code Online (Sandbox Code Playgroud)

#sidebar {
  background: red;
  float: left;
  width: 100px;
}

#main {
  background: green;
  margin-left: 150px;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

在主要区域内部,我有一些左拉和拉右的内容,由clearfix清除.

问题是clearfix-div下面的内容被移动到低于侧边栏内容.

我为此做了一个小提琴:http://jsfiddle.net/ZguC7/

我通过将"overflow:collapse"设置为#main解决了这个问题,但是我不理解它,如果有人可以解释导致这个问题的原因,我会非常高兴.

css clearfix twitter-bootstrap-3

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

UWP:基于ScrollViewer计算转换

我有一个Windows通用应用程序,我正在使用DirectX渲染场景.我想使用Scrollviewer,因此我在Scrollviewer后面渲染我的场景,并希望根据Scrollviewer计算场景变换.它到目前为止工作正常,特别是翻译和滚动.但是当我放大时,场景会在两种特殊情况下跳跃:

  1. 场景有足够的空间并且居中,现在需要滚动.
  2. 相反的方向.

或多或少我使用以下代码:

float zoom = scrollViewer.ZoomFactor;

float inverseZoom = 1f / scrollViewer.ZoomFactor;

float scaledContentW = Document.Size.X * scrollViewer.ZoomFactor;
float scaledContentH = Document.Size.Y * scrollViewer.ZoomFactor;

float translateX;
float translateY;

if (scaledContentW < scrollViewer.ViewportWidth)
{
    translateX = ((float)scrollViewer.ViewportWidth * inverseZoom - Document.Size.X) * 0.5f;
}
else
{
    translateX = -inverseZoom * (float)scrollViewer.HorizontalOffset;
}

if (scaledContentH < scrollViewer.ViewportHeight)
{
    translateY = ((float)scrollViewer.ViewportHeight * inverseZoom - Document.Size.Y) * 0.5f;
}
else
{
    translateY = -inverseZoom * (float)scrollViewer.VerticalOffset;
}

float visibleX = inverseZoom …
Run Code Online (Sandbox Code Playgroud)

c# xaml windows-10 win2d uwp

24
推荐指数
1
解决办法
1707
查看次数

具有异步/等待的CurrentCulture,自定义同步上下文

我有一个Web应用程序,我使用async/await来使用大量的异步操作.一切都运行良好,但是当我创建自定义任务以并行运行多个事物时,我注意到,在此任务中,当前文化在等待之后发生了变化.问题似乎是,线程池使用操作系统的文化,这与请求的文化不同,并且默认同步不会更新文化,即使在更改任务中当前线程的文化时也是如此.

所以我创建一个自定义同步上下文:

public sealed class CulturePreservingSynchronizationContext : SynchronizationContext
{
    private CultureInfo culture;
    private CultureInfo cultureUI;

    public CulturePreservingSynchronizationContext()
    {
        GetCulture();
    }

    public void MakeCurrent()
    {
        SetCulture();

        SynchronizationContext.SetSynchronizationContext(CreateCopy());
    }

    public override SynchronizationContext CreateCopy()
    {
        CulturePreservingSynchronizationContext clonedContext = new CulturePreservingSynchronizationContext();
        clonedContext.culture = culture;
        clonedContext.cultureUI = cultureUI;

        return clonedContext;
    }

    public override void Post(SendOrPostCallback d, object state)
    {
        base.Post(s =>
        {
            SetCulture();
            d(s);
        }, state);
    }

    public override void OperationStarted()
    {
        GetCulture();

        base.OperationStarted();
    }

    private void SetCulture()
    {
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = cultureUI; …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task-parallel-library

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

Angular2 with ASP.NET 5

我正在使用Angular2和ASP.NET5,gulp和typescript.当我解决Angular的教程时,一切正常,但我不确定如何与ASP.NET 5一起设置该过程.

我创建了一个带有工作打字稿编译和捆绑的项目,现在问题就出现了:

  1. 当我将tsConfig文件添加到项目的根目录时,visual studio无法识别该文件.当我把它放到wwwroot/scripts时,一切都很好(非常奇怪).

  2. Angular2不再支持DefinityTyped,文件为空并包含我必须安装npm包的提示.我做到了,但文件太多了.我必须包含哪些类型定义?他们都没有工作.我总是得到它找不到angular2/angular2的错误.

  3. 这很奇怪.当我使用commonjs作为打字稿时,编译工作.我真的很困惑,因为我不明白包含是如何工作的.Resharper显示了很多错误,但是当我暂时禁用它时.

  4. Angular2 NPM包还包含脚本文件.但由于它们在外面,我无法直接引用它们.我找不到带有脚本的bower包,让包裹两次也没有意义.

我会对如何使用asp.net 5设置angular2的教程或一些最佳实践感到高兴.

顺便说一下:有很多包管理器:NPM,NuGet,gulp,tsd ......

asp.net gulp angular

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

SignalR内存泄漏

我们有一个带有SignalR Hub的ASP.NET WebApi,它在两台带有Redis背板的服务器上运行.通常我们的api消耗3gb - 4gb的内存,但有时它会发生,内存峰值高达20gb.我还不知道原因,但我认为,当redis存在连接问题时会发生这种情况(这种情况非常罕见).

我分析了转储文件并找到了以下提示: 在此输入图像描述

在此输入图像描述

说实话,我不明白.它似乎与异常处理有关,但我不明白为什么字节数组那么大.

我正在寻找想法如何解决并抱有希望,有些东西有同样的问题.

c# asp.net memory-leaks signalr

7
推荐指数
0
解决办法
1043
查看次数

ThreadLocks和静态构造函数

鉴于:

IIS中托管的ASP.net Web api应用程序.该应用程序为一个插件生成大约30个应用程序域,这些域可以执行一些外部工作.

该应用程序为很多用户提供服务,并且大部分时间都在运行,但有时(几天甚至几周)它会突然挂起.

问题:

一个Web应用程序有时会"挂起",导致需要重新启动w3wp.exe.

在对这种状态下的转储进行一些检查后,我们发现在这个时刻有很多线程(有时约为15.000).

在正常情况下,我们永远不会观察到超过一百个线程.

DebugDiag说有一个线程阻塞其他线程

在此输入图像描述

现在我们已经看到在线程44(以及许多其他人;大约90%)中,在最后有相同的调用:

在此输入图像描述

Method本身没有任何锁定或线程行为.但是它的静态构造函数有一个不常见的东西.ctor看起来像这样:

   static TimeZoneHelper()
        {
        using (StringReader reader = new StringReader(Resources.TimeZones))
        {
            string line;

            while ((line = reader.ReadLine()) != null)
            {
                string[] parts = line.Split(';');

                TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(parts[1]);

                timeZones[parts[0]] = timeZone;
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

此外,调试分析表明应用程序处于活动的gc中(正如您可能会问的那样:我们永远不会手动触发gc.collect) 在此输入图像描述

问题 是否有证据表明此类代码在静态ctor中存在问题?即使没有任务或线程代码?也许与GC进展本身有关的东西(因为对象是一次性的,即使没有处置代码?)

TimeZoneHelper

我创建了一个gist,其中包含了这个类的主要方法,包括ctor和被称为的方法TimeZoneHelper.ToTimeZoneOffset:

https://gist.github.com/Gentlehag/9d564555261da0e73366

该方法导致的主要是Dictionary.TryGet(在ctor中创建)


编辑Btw我还想在每个appdomain中添加一个程序集解析事件.代码可以在这里看到:

https://gist.github.com/Gentlehag/4726b6d888adb149684d


重要更新 我是同事,只想添加更多信息.我们还发现了另一个非常相似的场景.我有来自拥有该块的线程的堆栈跟踪:

000000c898897560 00007ff8855b7e5d System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].FindEntry(System.__Canon)
000000c8988975d0 00007ff8855b7d34 System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].TryGetValue(System.__Canon, System.__Canon ByRef)
000000c898897610 00007ff88f6152b3 GP.Components.Extensions.AppDomains.RemotingRunner.CurrentDomain_AssemblyResolve(System.Object, System.ResolveEventArgs)
000000c8988978a0 00007ff886f7276c …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net multithreading garbage-collection

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

Angular2:NgModelChange调用了两次

我有一个angular2组件,当我在select元素中选择另一个选项时,我发现ngModelChange事件被触发了两次.

我查看了该组件模板的生成代码,我发现有2个值访问器.

_View_SelectionPropertyComponent0.prototype._handle_change_7_1 = function($event) {
  var self = this;
  self.markPathToRootAsCheckOnce();
  self.debug(7,3,8);
  var pd_0 = (self._SelectControlValueAccessor_7_4.onChange($event.target.value) !== false); // First call
  self.debug(7,3,8);
  var pd_1 = (self._SelectControlValueAccessor_7_11.onChange($event.target.value) !== false); // Second call
  return ((true && pd_0) && pd_1);
};
Run Code Online (Sandbox Code Playgroud)

这是我的组件的模板:

<div class="form-group row">
    <label class="col-xs-4 form-control-label">{{property.label}}</label>
    <div class="col-xs-8">
        <select class="form-control" [ngModel]="visual.appearance.get(property.name)" (change)="changeAppearance($event.target.value)" required>
            <option *ngFor="let p of property.options" [value]="p">{{p}}</option>
        </select>
    </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

这是设计,因为我在开发模式下运行应用程序?

typescript angular

5
推荐指数
0
解决办法
1581
查看次数

使用Ajax进行Google Analytics实验

我想将谷歌分析实验整合到我们的网站.

我的情况:我们有一个功能切换的解决方案,也允许A/B测试.这些功能存储在数据库中,并具有一个百分比,用于定义将有多少用户看到该功能.我们还将功能存储在cookie中,因此用户在刷新页面时将看到相同的视图.

现在我想使用服务器javascript API来跟踪功能的状态(Google实验文档).根据我的理解,我必须在每次使用实验时向谷歌发送请求,我还必须告诉谷歌替代方案的ID.它必须发生在右侧页面上,以将实验与正确的页面视图相关联.问题是可能检查拆分测试功能的ajax请求.在这种情况下,很难说哪个功能用于当前页面.

我看到3个选项:

  1. 跟踪所有实验,即使它们未在此站点上使用.(我认为它没有多大意义)
  2. 制作工具/配置来定义每个站点上使用的实验和功能切换(这里很容易出错).
  3. 从服务器端代码跟踪实验(但我不知道GA如何将这些调用连接到页面视图).

ajax请求和谷歌分析实验的官方指南是什么?

c# asp.net google-analytics

5
推荐指数
0
解决办法
151
查看次数

参数.使用Roslyn进行检查

我已经尝试了很多东西来摆脱所有这些无聊的代码来检查参数:

代码合约:当第三方库不支持时,您会感到紧张.

public void Buy(Product product)
{
     Contract.Requires(product != null);
}
Run Code Online (Sandbox Code Playgroud)

PostSharp:自定义属性.

public void Buy([NotNull] Product product)
{
}
Run Code Online (Sandbox Code Playgroud)

Guard-Class:带有辅助方法的静态类.

public void Buy(Product product)
{
     Guard.NotNull(product, "product"); // Repeat parameter name, bad for refactoring.
     Guard.NotNull(() => product); // Slow
}
Run Code Online (Sandbox Code Playgroud)

手册:

public void Buy(Product product)
{
     if (product == null)
     {
          throw new ArgumentNullException("product");
     }
}
Run Code Online (Sandbox Code Playgroud)

对于最后一个版本的roslyn,可以选择编写扩展来简化验证.对于90%我检查空引用或空字符串,所以有这样的东西可能是有价值的:

public void Buy(required Product product)
{
}

public void Buy(Product product)
{
     requires product
}

public void FindUser(required nonempty …
Run Code Online (Sandbox Code Playgroud)

c# parameter-passing roslyn

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

Redis Windows,性能问题

我在Windows上运行redis,我遇到了一些性能问题.该机器是带有32GM RAM的Xeon E5和带有Windows Server 2012的HW-Raid的SSD.还有一些其他进程在运行,但它们并不重要,大部分时间都处于空闲状态.

我经常注意到性能问题和操作超时,所以我开始"redis-cli --intrinsic-latency 100".输出显示最大延迟高达15000微秒,我认为这非常慢.

我还运行了一个内存分析器:r/w性能不是那么好(5GB /秒),但我认为这不应该是瓶颈.目前我绝对不知道该尝试什么.

你能告诉我一些如何找到性能问题吗?

performance redis

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

在Kubernetes中流畅阅读容器日志时出现权限问题

我真的是kubernetes的新手,并且在GCE中运行了带有Redis和mongodb的测试应用程序。我想用流利的抓握我的日志文件并将其发送到logz:

我使用以下流利的配置文件。我在本地计算机上测试了类似版本。

<source>
    @type tail
    path /var/log/containers/squidex*.log
    pos_file /var/log/squidex.log.pos
    tag squidex.logs
    format json
</source>

<match squidex.logs>
    @type copy
    <store>
        @type logzio_buffered
        endpoint_url https://listener.logz.io:8071?token=...
        output_include_time true
        output_include_tags true
        buffer_type file
        buffer_path /fluentd/log/squidex.log.buffer
        flush_interval 10s
        buffer_chunk_limit 1m
    </store>
    <store>
        @type stdout
    </store>
</match>
Run Code Online (Sandbox Code Playgroud)

我的kubernetes配置是:

---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd-logging
  labels:
    app: fluentd-logging
spec:
  template:
    metadata:
      labels:
        app: fluentd-logging
    spec:
      containers:
      - name: fluentd
        image: gcr.io/squidex-157415/squidex-fluentd:latest
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 40m
        volumeMounts:
        - name: varlog
          mountPath: /var/log
      terminationGracePeriodSeconds: …
Run Code Online (Sandbox Code Playgroud)

fluentd docker kubernetes

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

使用异步等待可以丢失http上下文吗?

我们的应用程序不时因为这个错误而崩溃:https://serverfault.com/questions/675649/accessviolationexception-iis ,我不想自己讨论这个错误,但对可能的原因有一些疑问:

我查看了使用ILSpy的system.web中的代码,我得到的结论是http运行时丢失了上下文(和一个非托管指针),因此崩溃了.我没有关于异常的详细信息所以我检查了所有代码,除了一个api调用之外,一切都非常直接.

它或多或少看起来像这样(伪代码):

private async Task SearchAsync()
{
   Func<Stream, HttpContent, TransportContext, Task> searching = 
       async (stream, content, transportContext) =>
   {
      StreamWriter writer = new StreamWriter(stream);

      Action<Data> write = new Action<Data>()
      {   
          writer.WriteData(data);
          writer.WriteLine();
          writer.Flush();
      };

      List<Task> tasks = new List<Task>();

      foreach (IService service in services)
      {
         tasks.Add(Task.Run(() => service.CallAsync(write));
      };

      await Task.WhenAny(
         Task.Delay(10000),
         Task.WhenAll(tasks));
   };

   response.Content = new PushStreamContent(searching, "text/event-stream");
}
Run Code Online (Sandbox Code Playgroud)

它看起来有点奇怪,但原因如下:

  • 我们需要触发一些服务,其中一半还没有任何异步客户端库.我们还在服务调用之前和之后进行一些处理,比如调用db(不是异步,感谢mongo驱动程序)和进行cpu密集型计算.
  • 每项服务可能需要很长时间(例如1分钟)才能回答.因此,我们会尽快将内容推送到响应流.
  • 我们不希望用户等待这么久,所以我们取消了对用户的请求但继续搜索,因此数据下次可用.

所以问题是:在这段代码中,http上下文能否以某种方式丢失?丢失意味着以下内容:在链接的问题中,您看到system.web中的本地方法失败.可能是因为传递给此方法的IntPtr(来自http上下文)不再有效

我看不到任何潜在的问题吗?如何正确处理IIS中的并行任务?


编辑:为什么service.CallAsync异步?

该代码简化了实际情况.在我的代码中,服务是真实服务的包装器.每个服务都有多个步骤,很多类和多个级别的调解器,但结构如下:

GetFromDatabase(); // Not async yet, because of …
Run Code Online (Sandbox Code Playgroud)

c# asp.net iis async-await

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