我有一个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解决了这个问题,但是我不理解它,如果有人可以解释导致这个问题的原因,我会非常高兴.
我有一个Windows通用应用程序,我正在使用DirectX渲染场景.我想使用Scrollviewer,因此我在Scrollviewer后面渲染我的场景,并希望根据Scrollviewer计算场景变换.它到目前为止工作正常,特别是翻译和滚动.但是当我放大时,场景会在两种特殊情况下跳跃:
或多或少我使用以下代码:
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) 我有一个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) 我正在使用Angular2和ASP.NET5,gulp和typescript.当我解决Angular的教程时,一切正常,但我不确定如何与ASP.NET 5一起设置该过程.
我创建了一个带有工作打字稿编译和捆绑的项目,现在问题就出现了:
当我将tsConfig文件添加到项目的根目录时,visual studio无法识别该文件.当我把它放到wwwroot/scripts时,一切都很好(非常奇怪).
Angular2不再支持DefinityTyped,文件为空并包含我必须安装npm包的提示.我做到了,但文件太多了.我必须包含哪些类型定义?他们都没有工作.我总是得到它找不到angular2/angular2的错误.
这很奇怪.当我使用commonjs作为打字稿时,编译工作.我真的很困惑,因为我不明白包含是如何工作的.Resharper显示了很多错误,但是当我暂时禁用它时.
Angular2 NPM包还包含脚本文件.但由于它们在外面,我无法直接引用它们.我找不到带有脚本的bower包,让包裹两次也没有意义.
我会对如何使用asp.net 5设置angular2的教程或一些最佳实践感到高兴.
顺便说一下:有很多包管理器:NPM,NuGet,gulp,tsd ......
我们有一个带有SignalR Hub的ASP.NET WebApi,它在两台带有Redis背板的服务器上运行.通常我们的api消耗3gb - 4gb的内存,但有时它会发生,内存峰值高达20gb.我还不知道原因,但我认为,当redis存在连接问题时会发生这种情况(这种情况非常罕见).
说实话,我不明白.它似乎与异常处理有关,但我不明白为什么字节数组那么大.
我正在寻找想法如何解决并抱有希望,有些东西有同样的问题.
鉴于:
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) 我有一个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)
这是设计,因为我在开发模式下运行应用程序?
我想将谷歌分析实验整合到我们的网站.
我的情况:我们有一个功能切换的解决方案,也允许A/B测试.这些功能存储在数据库中,并具有一个百分比,用于定义将有多少用户看到该功能.我们还将功能存储在cookie中,因此用户在刷新页面时将看到相同的视图.
现在我想使用服务器javascript API来跟踪功能的状态(Google实验文档).根据我的理解,我必须在每次使用实验时向谷歌发送请求,我还必须告诉谷歌替代方案的ID.它必须发生在右侧页面上,以将实验与正确的页面视图相关联.问题是可能检查拆分测试功能的ajax请求.在这种情况下,很难说哪个功能用于当前页面.
我看到3个选项:
ajax请求和谷歌分析实验的官方指南是什么?
我已经尝试了很多东西来摆脱所有这些无聊的代码来检查参数:
代码合约:当第三方库不支持时,您会感到紧张.
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) 我在Windows上运行redis,我遇到了一些性能问题.该机器是带有32GM RAM的Xeon E5和带有Windows Server 2012的HW-Raid的SSD.还有一些其他进程在运行,但它们并不重要,大部分时间都处于空闲状态.
我经常注意到性能问题和操作超时,所以我开始"redis-cli --intrinsic-latency 100".输出显示最大延迟高达15000微秒,我认为这非常慢.
我还运行了一个内存分析器:r/w性能不是那么好(5GB /秒),但我认为这不应该是瓶颈.目前我绝对不知道该尝试什么.
你能告诉我一些如何找到性能问题吗?
我真的是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) 我们的应用程序不时因为这个错误而崩溃: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)
它看起来有点奇怪,但原因如下:
所以问题是:在这段代码中,http上下文能否以某种方式丢失?丢失意味着以下内容:在链接的问题中,您看到system.web中的本地方法失败.可能是因为传递给此方法的IntPtr(来自http上下文)不再有效
我看不到任何潜在的问题吗?如何正确处理IIS中的并行任务?
编辑:为什么service.CallAsync异步?
该代码简化了实际情况.在我的代码中,服务是真实服务的包装器.每个服务都有多个步骤,很多类和多个级别的调解器,但结构如下:
GetFromDatabase(); // Not async yet, because of …Run Code Online (Sandbox Code Playgroud) c# ×7
asp.net ×5
angular ×2
.net ×1
async-await ×1
clearfix ×1
css ×1
docker ×1
fluentd ×1
gulp ×1
iis ×1
kubernetes ×1
memory-leaks ×1
performance ×1
redis ×1
roslyn ×1
signalr ×1
typescript ×1
uwp ×1
win2d ×1
windows-10 ×1
xaml ×1