小编wal*_*wal的帖子

暂停时调试并且"无法评估表达式"

使用Visual Studio,在连接到Process并按Pause(Break-All)后,切换到所需的线程并使用Quick Watch窗口检查一些数据,比如说

MySingletonClass.Instance.Data
Run Code Online (Sandbox Code Playgroud)

有时候我得到这个:

无法计算表达式,因为当前线程处于休眠,等待或加入状态

或者这个(当试图查看数据的某些属性时):

无法计算表达式,因为本机帧位于调用堆栈的顶部.

坦白说,我不在乎,我只是想看看数据!我知道有各种方法来解决这个问题,即:

  1. 在线程上设置断点并等待它被击中(繁琐,并不总是可能)
  2. 转储进程并加载回VS(即便如此我仍然得到第二个错误)
  3. WinDbg的

如果你可能会使用windbg,你可以看到这些数据为什么我们都无法利用更简单,更漂亮的VS来连接到一个进程时检查对象?

.net debugging visual-studio

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

使用makecert为自签名证书添加或创建"使用者替代名称"字段

如何使用makecert"使用者替代名称"字段创建证书?

在此输入图像描述

您可以使用-eku选项添加一些字段,例如"增强型密钥用法",我尝试了-san选项,但makecert不喜欢它.

这是一个自签名证书,因此任何使用IIS创建要发送给CA的内容的方法都不合适.

certificate self-signed makecert x509certificate

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

protobuf-net没有正确反序列化DateTime.Kind

使用protobuf-net.dll版本1.0.0.280

当我反序列化DateTime(包裹在一个对象中)时,日期/时间是可以的,但DateTime.Kind属性是'未指定'

考虑这个测试用例来序列化/反序列化DateTime.

[TestMethod]
public void TestDateTimeSerialization()
{
    var obj = new DateTimeWrapper {Date = DateTime.UtcNow};
    obj.Date = DateTime.SpecifyKind(obj.Date, DateTimeKind.Utc);
    var serialized = obj.SerializeProto();
    var deserialized = serialized.DeserializeProto<DateTimeWrapper>();
    Assert.AreEqual(DateTimeKind.Utc, deserialized.Date.Kind);
}

public static byte[] SerializeProto<T>(this T item) where T : class
{
    using (var ms = new MemoryStream())
    {
        Serializer.Serialize(ms, item);
        return ms.ToArray();
    }
}

public static T DeserializeProto<T>(this byte[] raw) where T : class, new()
{
    using (var ms = new MemoryStream(raw))
    {
        return Serializer.Deserialize<T>(ms); …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization protobuf-net

18
推荐指数
2
解决办法
3715
查看次数

使用dotnet cli一步编译多个dotnet核心项目

假设这个文件夹结构

SampleApp
        global.json
        Src  
            Web             
                project.json
                Startup.cs
                ...
            Model
                project.json
                Startup.cs
                ...
Run Code Online (Sandbox Code Playgroud)

如何使用dotnet?编译两个项目?(来自命令行,而不是视觉工作室)

如果你dotnet build在根文件夹级别运行,你得到

找不到文件.. project.json

我可以看到CLI repo上有这个突出的增强功能,但是从2月2日开始.

在盲目地调用dotnet所有src子文件夹之前,任何脚本都必须考虑依赖关系.

.net-core dotnet-cli

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

将反应构建输出合并到单个 js 文件中

这与这个问题类似,但是这两个答案都不能解决问题。

运行后npm run build的结果index.html类似于:

<script>!function (i) { function e(e) { for //rest omitted
<script src="/static/js/2.3f294f32.chunk.js"></script>
<script src="/static/js/main.7b9daa35.chunk.js"></script>
Run Code Online (Sandbox Code Playgroud)

第一个<script>元素是内联的 javascript,我已将其提取到一个名为的文件中loader.js

<script src="/loader.js"></script>
<script src="/static/js/2.3f294f32.chunk.js"></script>
<script src="/static/js/main.7b9daa35.chunk.js"></script>
Run Code Online (Sandbox Code Playgroud)

这有效,但我想将所有 3 个文件合并为一个文件

我已经尝试过filesmerge.com来合并 JS 文件,但这会导致在引用单个文件时出错:

output.min.js:1 Uncaught TypeError: (intermediate value)(...) is not a function
at output.min.js:1
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用jscompress.com 进行组合,虽然这不会产生任何错误,但不会呈现反应根元素

我也试过在 create-react-app 存储库中建议的这个解决方案不起作用。不产生错误但不呈现反应元素(页面保持空白)

reactjs webpack create-react-app

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

在返回IEnumerable的方法中使用锁时,linq延迟执行

考虑一个Registry由多个线程访问的简单类:

public class Registry
{
    protected readonly Dictionary<int, string> _items = new Dictionary<int, string>();
    protected readonly object _lock = new object();

    public void Register(int id, string val)
    {
        lock(_lock)
        {
           _items.Add(id, val);
        }
    }

    public IEnumerable<int> Ids
    {
        get
        {
            lock (_lock)
            {
                return _items.Keys;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和典型用法:

var ids1 = _registry.Ids;//execution deferred until line below
var ids2 = ids1.Select(p => p).ToArray();
Run Code Online (Sandbox Code Playgroud)

这个类不是线程安全的,因为它可以接收 System.InvalidOperationException

收集被修改; 枚举操作可能无法执行.

如果另一个线程调用Register,则分配ids2 _items.Keys,因为锁定下没有执行!

这可以通过修改Ids返回IList …

c# linq thread-safety

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

PDF中动态大小的多行TextBox字段

我在开放式办公室中创建了一个带有多行表单字段的文档:

在此输入图像描述

我遇到的问题是当动态内容超过多行文本框的初始大小时:

在此输入图像描述

当然我可以在原始模板中重新调整文本框的大小,但动态内容可能是1到50行,我希望文本框后面的文本接近最后一行动态内容.

有人可以提出解决方法吗?

c# pdf itext

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

按顺序减慢查询速度

使用sql server 2014; ((SP1-CU3)(KB3094221)2015年10月10日x64

我有以下查询

SELECT * FROM dbo.table1 t1

                    LEFT JOIN dbo.table2 t2 ON t2.trade_id = t1.tradeNo
                    LEFT JOIN dbo.table3 t3 ON t3.TradeReportID = t1.tradeNo                                                                                                
                    order by t1.tradeNo
Run Code Online (Sandbox Code Playgroud)

t1,t2和t3分别有~70k,35k和73k行.

当我省略order by此查询时,在3秒内执行73k行.

正如所写,查询需要8.5 分钟才能返回~50k行(我已经停止了它)

切换LEFT JOINs 的顺序有所不同:

SELECT * FROM dbo.table1 t1

                    LEFT JOIN dbo.table3 t3 ON t3.TradeReportID = t1.tradeNo                                                                                                
                    LEFT JOIN dbo.table2 t2 ON t2.trade_id = t1.tradeNo                     
                    order by t1.tradeNo
Run Code Online (Sandbox Code Playgroud)

现在运行3秒钟.

我桌子上没有任何索引.添加索引t1.tradeNot2.trade_idt3.TradeReportID没有效果.仅使用一个左连接(两个方案)与order by快速结合运行查询.

我可以更换LEFT JOIN …

sql-server performance

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

加载aspnetcore RC2默认网站项目时出现"Bad Gateway"错误

我试图通过IIS运行默认的ASP.NET核心Web应用程序(VS 2015中的Web应用程序模板).

我按照从文档的说明这里例如,设置了一个"无托管代码"应用程序池,并指着位置的物理路径web.config的文件.

当我尝试浏览网站根目录时,http://localhost我收到此错误:

HTTP错误502.3 - 错误的网关尝试路由请求时出现连接错误.

最有可能的原因是:CGI应用程序没有返回一组有效的HTTP错误.由于父网关中的错误,充当代理或网关的服务器无法处理请求.

事件查看器指出:

无法使用命令行'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll'启动进程,错误代码='0x80004005'.

此错误显示我已替换占位符

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
Run Code Online (Sandbox Code Playgroud)

web.config与需要的值

<aspNetCore processPath="dotnet" arguments="./bin/Debug/netcoreapp1.0/WebApplication2.dll"
Run Code Online (Sandbox Code Playgroud)

(更新:发布时替换这些占位符)

根据我安装的故障排除说明.NET Core Windows Server Hosting Bundle并重新启动服务器.

通过dotnet工作从命令行运行

想知道现在该尝试什么.

asp.net-core .net-core-rc2

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

从C#引用64位dll时应用程序退出(无异常)

编译了lzo2.dll 64位,现在希望在C#程序中使用它:

我正在使用以下类进行测试(类似的代码适用于32位lzo.dll):

[DllImport("lzo2.dll")]
private static extern string lzo_version_string();
static void Main(string[] args)
{
    try
    {
        if (Environment.Is64BitProcess)
        {
            Console.WriteLine(lzo_version_string());//application exits here, no exceptions caught 
        }                
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }
    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

在指示应用程序崩溃的时候,所以我拔出了windbg,这里是输出:(对不起详细说明)

0:000> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\e0e5fbe72e8813a135fc878ff32b4bee\mscorlib.ni.dll
*** WARNING: Unable to verify checksum for Lzo64.exe
GetPageUrlData failed, server returned HTTP status 404
URL requested: http://watson.microsoft.com/StageOne/Lzo64_exe/1_0_0_0/4eccdc93/ntdll_dll/6_1_7601_17514/4ce7c8f9/80000003/000c40bf.htm?Retriage=1

FAULTING_IP: 
ntdll!RtlReportCriticalFailure+2f
00000000`77a240bf …
Run Code Online (Sandbox Code Playgroud)

c# c++ windbg dump

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