小编Jon*_*upp的帖子

log4net与.NET 4.0

我已经把一些代码拼凑起来修补新的.Net 4.0/VS 2010件,但我似乎无法找到我的选择日志框架(log4net)for 4.0的构建,并且我得到了参考错误2.0版本.某处有4.0版本可用吗?我不是要求新功能,只是一个已经针对新组件重建的版本.有谁知道我在哪里可以找到为4.0框架构建的1.2.10版本?

log4net .net-4.0

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

更改Subversion错误消息的语言

出于某种原因,subversion正在返回我认为是德语的错误消息:

# svn up . 
svn: Zielpfad existiert nicht
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道那种语言......在我使用在线翻译引擎来解决这个问题之前,我想我会尝试修复它.我想我只是在做一些非常简单的错误.我正在运行subversion 1.6.4通过yum安装在centos上(从具有相同问题的1.4.something升级).这是与CPanel混合的VPS.

据我所知,它试图加载英文信息并失败.我在strace输出中看到了这个:

open("/usr/share/locale/en_US/LC_MESSAGES/subversion.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/subversion.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
brk(0x4106d000)                         = 0x4106d000
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

正常的SVN命令是英文的(svn help,svn help up等),只是错误信息是德文的.就我所知,我一直都是这样使用机器而且我从来没有从Subversion得到错误信息......

:: locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES=en_US
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

我也跑:

export LC_MESSAGES=en_US
export LANG=en_US …
Run Code Online (Sandbox Code Playgroud)

svn internationalization

9
推荐指数
2
解决办法
6749
查看次数

如果IE9用户在该呼叫正在进行时导航离开页面,则AJAX POST的ManagedPipelineHandler会崩溃

场景:

  • 用户正在使用IE9(IE8/10不受影响).
  • 用户有一个活动的会话.
  • Page启动对具有SessionState(SessionStateBehavior.Required)属性(ReadOnly不受影响)的控制器的AJAX POST(GET不受影响)请求.有些东西可以防止此请求被立即处理(例如正在进行会话锁定的另一个请求).
  • 当AJAX POST正在进行时,用户导航离开页面(GET或POST - 无关紧要)

结果:

  • AJAX POST终止并返回HTTP 500(浏览器已退出侦听,但您可以在IIS日志中看到它).IIS失败请求跟踪显示错误是"指定的网络名称不再可用.(0x80070040)."
  • 在下一个需要读/写会话访问的请求可以执行之前,用户的会话被锁定在80到120秒之间(通常大约为100).

进一步挖掘IIS失败的请求跟踪创建的日志表明,在会话状态被锁定(在阶段期间)之后,AJAX POST会像这样崩溃REQUEST_ACQUIRE_STATE,但由于REQUEST_RELEASE_STATE阶段没有发生,因此不会释放会话锁定.我假设有一些安全机制可以在80-120秒之后解锁会话,但这个很长时间的挂起显然对我的用户来说是不受欢迎的.

我有一个简单的VS2012/.Net 4.5/MVC4项目,可以在https://github.com/jorupp/Ie9SessionCrash上找到这个问题(有一个页面可以通过Sleep调用发布一系列帖子).显示问题的IIS失败请求跟踪位于https://github.com/jorupp/Ie9SessionCrash/tree/master/Ie9SessionCrash/TraceOfHttp500的项目中.

为了解决这个问题,我们计划确保我们永远不会对需要会话的操作进行任何AJAX POST调用,并且:

  • 尽可能使用GET调用
  • 使用POST调用具有该SessionState(SessionStateBehavior.ReadOnly)属性的控制器.

有没有更好的方法来解决这个问题,或者我错过了与此相关的IIS/.Net补丁?或者这种情况是否因其他原因无效?我为此错误地指责框架/ IIS,但我认为我已经消除了我的代码是错误的.

internet-explorer-9 asp.net-4.5 iis-8

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

使用类型作为打字稿中的值

我正在使用inject-loader模拟针对被测单元的Typescript项目的依赖项.我正在测试的服务有一个这样的导入行:

import pnp, { SearchQuery, Sort, SortDirection, CamlQuery } from "sp-pnp-js";
Run Code Online (Sandbox Code Playgroud)

对于我的测试,我想模仿pnp上的几个函数,但保持类完好无损.在我的单元测试文件中,我已经包含了这个导入:

import { SearchQuery, Sort, SortDirection, CamlQuery } from "sp-pnp-js";
Run Code Online (Sandbox Code Playgroud)

这使我的测试访问必要的类.我已经声明了一个模拟服务对象:

// mock services
const mockPnp = {
    default: { ... }
};
Run Code Online (Sandbox Code Playgroud)

我正在连接到我的目标类实例:

Service = require("inject!./sharepointservice")({
    "sp-pnp-js": mockPnp
}).Service;
Run Code Online (Sandbox Code Playgroud)

一切正常,只要我不运行任何引用这些类的代码(即.SearchQuery).为了实现这一点,我尝试将其添加到模拟中:

// mock services
const mockPnp = {
    default: { ... },
    SearchQuery: SearchQuery
};
Run Code Online (Sandbox Code Playgroud)

但是,我收到了一个'SearchQuery' only refers to a type, but is being used as a value here错误.

我已经尝试过any(同样的错误),模块和导出技巧,没有运气.我应该能够使用Typescript编写任何Javascript,这在Javascript中可以轻松工作 - …

unit-testing typescript

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

.NET上的x86/x64/ia64内存模型之间的差异

我正在寻找关于x86/x64/ia64上.NET CLR/JIT使用的内存模型之间差异的参考.我知道x86和ia64之间存在一些差异(指令重新排序,指令删除等),但我没有找到x86和x64之间差异的参考.

我有一个应用程序,旨在一些非常紧张的延迟数字,并且目前只能在x86上运行,也许在x64上运行(肯定不在ia64上).几个我想知道我是否可以依赖x86 JIT实现的一些工件并且在x64上仍然相对安全,或者我应该编程为更宽松的ia64 JIT(这将需要更多的字段是volitile并且内存屏障插入几个地方).

提前感谢任何指针.

.net 64-bit x86 itanium memory-model

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

当使用新创建的网络流时,networkstream"无法访问已处置的对象"

我有几种不同的方法连接到远程主机,发送消息,获得回复,并使用这些信息.这个工作正常,直到我在我的连接类的同一个实例中使用两个方法.在我收到错误的示例中,我运行以下方法;

public string sendRequestAccountID(string siteID)
{
    //build message
    String response = String.Empty;

    TcpClient client = new TcpClient();
    client.Connect(detailsHere);
    NetworkStream stream = client.GetStream();

    StreamWriter writer = new StreamWriter(stream);
    writer.AutoFlush = false;

    writer.WriteLine(sb.ToString());
    writer.Flush();

    StreamReader reader = new StreamReader(stream);
    List<XmlNode> nodeList = new List<XmlNode>();

    byte[] responseBytes = new byte[4096];
    int bytesRead = 0;

    while (true)
    {
        bytesRead = stream.Read(responseBytes, 0, responseBytes.Length);
        if (bytesRead > 0)
        {
            //handle message
        }
        if (bytesRead == 0)
        {
            stream.Flush();
            stream.Close();
            client.Close();
            string finalResponse = stuffHereToSend;
            return …
Run Code Online (Sandbox Code Playgroud)

.net c# networkstream winforms

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

从OneDrive下载公共共享文件

当我在UI中创建一个共享链接时,"任何有此链接的人都可以查看此项目"选项,我会看到一个类似的URL https://onedrive.live.com/redir?resid=XXX!YYYY&authkey=!ZZZZZ&ithint=<contentType>.我无法弄清楚如何使用代码中的URL来下载文件的内容.点击链接会为页面显示HTML以显示文件.

如何构建调用以下载文件?此外,有没有办法构建一个调用来获取有关该文件的一些(XML/JSON)元数据,甚至可能是预览或其他东西?我希望能够在不提示用户提供凭据的情况下完成所有操作,并且所有API文档都是关于如何进行经过身份验证的调用.我想匿名调用以获取公开共享的文件.

onedrive

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

以三元表达式合并评估者是不是很糟糕?(C#)

我环顾四周,没找到一个同等的问题.
这是不好的编码练习吗?我可以很容易地阅读它,但对于阅读代码的人来说它是否太神秘了?

bool? testBool = null;  
string result;  
result = (testBool ?? false ? "Yes" : "No");  
Run Code Online (Sandbox Code Playgroud)

编辑:我向大家道歉,感谢一些可怕的代码!这是一个有效的例子.
我对回复的速度感到有些不知所措.我打算删除这个并且做得对,但已经有4个回复了!

c# ternary-operator null-coalescing-operator

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