c#Environment.ProcessorCount并不总是返回完整数量的逻辑处理器,为什么?

在我的机器上,Windows 7 – Enterprise 1 x Intel Xeon E5-1660 0 @ 3.30Ghz(激活超线程的6核/ CPU),Environment.ProcessorCount返回12,这是准确的。 在具有2 x Intel Xeon E5-2697 v3 @ 2.60GHz的Windows Server 2012上(启动了超线程的14核/ CPU(我认为因为任务管理器显示:2个插槽,28个核心,56个逻辑处理器)),Environment.ProcessorCount返回因为2x14x2 = 56,我们认为这是错误的。 为什么在Windows Server 2012 c#方法Environment.ProcessorCount没有返回正确数量的逻辑处理器? 作为附加信息,环境变量如下:NUMBER_OF_PROCESSORS = 28 更新2015-05-26: 在我的另一个问题中有更多关于此相关错误的详细信息/原因: 无法在C#应用程序中为我的线程使用多个处理器组 。 主要是我认为C#只使用一个处理器组。 有什么问题,在我们的服务器上,有2个处理器组,尽管只有56个逻辑处理器。 但是这个惠普客户顾问解释了为什么我们的服务器BIOS配置导致错误的窗口。

DbSet.Cast ()错误:无法从非genericsDbSet为“实体”类型的对象创建DbSet

版本信息: 我正在使用C#4.5,Entity Framework 6.0和MEF。 代码和unit testing 我创建了一个测试项目来解释这个问题: https : //skydrive.live.com/redir?resid = E3C97EC293A34048!2234 请打开UnitTest项目并尝试运行TestIfItWorks()unit testing。 问题 我想将非genericsDbSet转换为其通用版本,但是我得到以下exception: InvalidCastException: Cannot create a DbSet from a non-generic DbSet for objects of type ‘User’ : var nonGeneric = context.Set(typeof(User)); var generic = nonGeneric.Cast(); //Exception in here User类正在实现IUser,所以你会认为强制转换不应该是一个问题,除非DbSet代码被限制在具体的类中(我希望不是我需要创建一个围绕非genericsDbSet的包装器将它转换为genericsDbSet或找到当前DbSet实现的替代方案)。 如果你想知道为什么我使用接口,即使它们目前不受微软支持我给你一些解释(希望这会过滤掉“不要那样做”而不是提供解决方案的响应): 我正在使用MEF和EntityFramework创建一个松散耦合的数据层引擎,通过它我可以为每个项目提供实体(及其相应的配置)。 我一直在广泛使用Interfaces来定义引擎。 使用MEF在运行时发现元数据和上下文中实体的具体实现。 摘自代码 [TestMethod] public void TestIfItWorks() { //TODO: Please […]

如何在树视图的代码中设置WPF datatemplate?

struct Drink { public string Name { get; private set; } public int Popularity { get; private set; } public Drink ( string name, int popularity ) : this ( ) { this.Name = name; this.Popularity = popularity; } } List coldDrinks = new List ( ){ new Drink ( “Water”, 1 ), new Drink […]

升级到SignalR-2.0.0-beta2时未生成/ signalr / hubs

我有一个像SignalR 1.1.2上运行的应用程序的工作聊天,它将被放到负载平衡的服务器上,所以我需要实现一个背板解决方案来同步服务器。 这是一个ASP.NET MVC4 .NET 4.5应用程序。 使用SignalR Hub ,而不是持久连接。 该应用程序利用客户端的AngularJS来处理ui绑定和更新。 我按照此处列出的步骤实现了sql server背板,并使用了此处概述的1.x到2.0迁移中概述的步骤。 解决方案构建,但是当点击使用SignalR的页面时,“/ signalr / hubs”脚本引用返回500错误。 这是我到目前为止所采取的步骤列表。 使用nuget,删除了与SignalR 1.1.2相关的所有引用和依赖项。 双重检查/ bin和/ packages目录以确保它们不再引用任何旧库。 这是关于2.0升级的github 问题上发现的评论,表示卸载和重新安装SignalR是升级的方法。 通过软件包管理器控制台(PMC) Install-Package Microsoft.AspNet.SignalR -Pre SignalR 2.0.0-beta2 Install-Package Microsoft.AspNet.SignalR -Pre 使用PMC Install-Package Microsoft.AspNet.SignalR.SqlServer -Pre安装的SQL Server消息传递背板 删除了RouteTable.Routes.MapHubs(); 来自Global.asax 在项目的根目录中创建了Startup类。 Startup.cs using Microsoft.AspNet.SignalR; using Microsoft.Owin; using Owin; namespace My.NameSpace { public class Startup { […]

为什么C#不对generics做“简单”类推理?

只是好奇:当然,我们都知道generics类型推断的一般情况是不可判定的。 所以C#根本不做任何类型的子类型:如果Foo 是generics的, Foo 不是Foo 的子类型,或Foo 或其他任何你可能的类型做饭。 当然,我们都用丑陋的界面或抽象的类定义来解决这个问题。 但是……如果你不能解决一般问题,为什么不把解决方案限制在容易的情况下。 例如,在上面的列表中,显然Foo 是Foo 的子类型,并且检查它是微不足道的。 对于Foo 进行检查也是如此。 如果他们只是说,那么还有其他一些深深的恐怖会从深渊蔓延出来,我们会尽我们所能吗? 或者这只是微软语言人员的某种宗教纯洁? 更新: 这是一个非常古老的线程。 这些天,C#有var,它解决了我抱怨的一半,然后使用Linq风格的匿名代表,有一个很好的表示法,不需要输入相同的东西两次。 因此,我反对的所有方面都已经通过最近对C#的更改得到了解决(或者我只是花了一些时间来了解我刚发布post时刚刚介绍的内容……)我使用这些新内容现在在Isis2系统中可靠的云计算function(isis2.codeplex.com),我认为该库具有非常干净的外观和感觉。 看看它,让我知道你的想法)。 – Ken Birman(2014年7月)

我可以复制.OFT文件并更改其主题

我在sharepoint事件接收器中有以下代码,用于将.oft文件复制到文档库中并将其粘贴到新目标(另一个文档库)中: – SPDocumentLibrary template = (SPDocumentLibrary)properties.Web.GetList(properties.Web.ServerRelativeUrl + “/Templates/”); SPListItem templetefile = null; foreach (SPListItem i in template.Items) { if (i.Name.ToLower().Contains(“project”)) { templetefile = i; } } byte[] fileBytes = templetefile.File.OpenBinary(); string destUrl = properties.Web.ServerRelativeUrl + “/” + projectid.RootFolder.Url +”.oft”; SPFile destFile = projectid.RootFolder.Files.Add(destUrl, fileBytes, false); 现在我的代码运行良好。 但我不确定我是否可以在复制后访问.OFT文件,并修改其主题(按主题我的意思是我的电子邮件主题)?

Silverlight HTTP POST少数变量,SIMPLEST示例(最少代码)

您好我想将一些来自silverlight的数据发布到网站上。 我发现以下链接 ,它的工作原理…… 然而……这个例子太精致了,让我的眼睛受伤。 另外.. flex示例更干净/更少代码.. 我想说必须有更好的解决方案…… 供参考..我们发布2个变量(字符串)并读出结果(字符串)。 来自链接的解决方案: 1. // C# 2. // Create a request object 3. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(POST_ADDRESS, UriKind.Absolute)); 4. request.Method = “POST”; 5. // don’t miss out this 6. request.ContentType = “application/x-www-form-urlencoded”; 7. request.BeginGetRequestStream(new AsyncCallback(RequestReady), request); 8. 9. // Sumbit the Post Data 10. void RequestReady(IAsyncResult asyncResult) 11. […]

在Entity Framework Core中启用原始SQL日志记录

如何启用DbCommand原始SQL查询的日志记录? 我已将以下代码添加到我的Startup.cs文件中,但未看到Entity Framework Core中的任何日志条目。 void ConfigureServices(IServiceCollection services) { services.AddLogging(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection(“Logging”)); loggerFactory.AddDebug(LogLevel.Debug); } 我期待看到这样的事情: Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilder… SELECT [t].[Id], [t].[DateCreated], [t].[Name], [t].[UserName] FROM [Trips] AS [t]

在Visual C#Windows窗体中读取/写入PDF文件

对于客户端,我需要能够读取和写入PDF文件。 这有两个缺点: 我不知道怎么做。 我不能使用任何第三方copmonents /库。 有人可以指出我正确的方向,我可以学习如何开始阅读和写PDF文件? 我不是要求代码或类似的东西(虽然…..;)),我只是想知道是否有人知道任何好的起点……

如何在c#mvc中跨多个子域保持会话?

一个购物车应用程序我正在从正常页面进入提交您的详细信息页面时跳转域。 简而言之,部署了两个应用程序副本:一个服务器用于“主”站点,一个服务器具有运行在https上的ev证书,用于客户详细信息(包括付款;这是PCI合规性问题)。 我的问题是: 从http://shop.domain – > https://secure.domain跳转 (如果用户浏览后退回),我该如何保留会话? 使用JSONP传递cookie跨越域是微不足道的,但我不知道如何处理远程端的“重新连接”会话。 我已经阅读了有关滚动您自己的自定义会话提供程序等的各种事情,但我还没有找到一个不仅仅是通用建议; 当然没有关于如何使用它来重新加入会话的示例。 这是一个MVC3 c#网络应用程序。