Tag: .net core rc2

如何在ASP.NET Core RC2中制作websocket服务器?

我使用“Microsoft.AspNetCore.WebSockets.Server”:“0.1.0-rc2-final”来制作websocket服务器,但不起作用。 (在rc1中,它是1.0.0-rc1-final,它工作正常…) 这是我的代码: public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection(“Logging”)); loggerFactory.AddDebug(); app.UseWebSockets(); app.Use(async (http, next) => { if (http.WebSockets.IsWebSocketRequest) { IHandler handler = WebsocketManager.getHandler(http.Request.Path); if (handler == null) { await next(); } else { var webSocket = await http.WebSockets.AcceptWebSocketAsync(); if (webSocket != null && webSocket.State == WebSocketState.Open) { // TODO: Handle the […]

字典计数大于89478457时出错

我正在接受这个命令 Dictionary myIntDict = new Dictionary(89478458); 这个错误: System.OutOfMemoryException was unhandled HResult=-2147024882 Message=Array dimensions exceeded supported range. Source=mscorlib StackTrace: at System.Collections.Generic.Dictionary`2.Initialize(Int32 capacity) at System.Collections.Generic.Dictionary`2..ctor(Int32 capacity, IEqualityComparer`1 comparer) 在89478457上没有错误。 这是Dictionary.cs中Initialize的源代码: private void Initialize(int capacity) { int size = HashHelpers.GetPrime(capacity); … entries = new Entry[size]; … } 当我重现它时,错误发生在数组创建上。 在这种情况下,Entry是一个结构,大小为24.当我们得到max int32(0x80000000-1)并除以24 = 89478485时,这个数字在素数89478457和89478503之间。 这是否意味着,结构数组不能像maxInt32 / sizeOfThisStruct那样大? 编辑: 是。 我实际上超过2 […]

在.Net Core 1.0中运行时编译和运行代码

是否可以在新的.Net Core(更好的.Net标准平台)中运行时编译和运行c#代码? 我见过一些例子(.Net Framework),但是使用过的NuGet包 与netcoreapp1.0不兼容(.NETCoreApp,Version = v1.0)

为什么TestServer(AspNetCore)在静态文件上出现404错误?

我有一个示例服务器 var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); 在Startup类中配置: public void Configure(IApplicationBuilder app) { app.Run(async (context) => { await context.Response.WriteAsync(“Hello World!”); }); } 我正在使用xunit测试(学习): public TestFixture() { var builder = new WebHostBuilder().UseStartup(); _server = new TestServer(builder); Client = _server.CreateClient(); Client.BaseAddress = new Uri(address); } 然后 var response = await Client.GetAsync(“http://localhost:51021/”); Assert.Equal(HttpStatusCode.OK, […]

.Net核心类库的条件编译符号

我创建了一个.Net Core R2类库,它有一些我用于几个不同平台的常用代码。 某些代码在.Net Core平台中无效,因此我希望将其包含在条件编译符号中。 我首先搜索互联网,看看我是否能找到内置符号(如Silverlight应用程序的SILVERLIGHT和Windows 8应用程序的WINFX_CORE),但无法找到任何信息,所以我决定创建自己的符号。 这似乎也不起作用。 从我阅读的所有内容中添加和使用符号应该很简单,只需在Project Properties中为条件编译符号添加一个值即可 构建标签。 我做到了,但似乎确实有效。 这里有几个屏幕截图…… 请注意,我在条件编译符号中添加了一个NET_CORE值,但是当我在代码中使用它时,代码不会被忽略。 1)是否有人知道.Net Core平台是否有内置符号(我使用的是R2)? 2)如果没有,我在创建自己的符号时做错了什么? .xproj文件: 14.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 253184d7-9b42-4233-a871-8cfa3ee9e83e Linq2Db.NetCore .\obj .\bin\ v4.6.1 SAK SAK SAK SAK 2.0 更新:我能够使用提供的答案中的链接解决此问题。 这是细节…… 最初project.json文件看起来像这样…… { “dependencies”: { “NETStandard.Library”: “1.5.0-rc2-24027” }, “frameworks”: { “netstandard1.5”: { “imports”: “dnxcore50” } }, “buildOptions”: { “defines”: [ “NET_CORE” ] } } […]

在ASP.NET MVC核心应用程序(RC2)中显示项目版本

如何从project.json显示应用程序版本? 我正在使用gulp-bump来自动增量版本,但我无法显示最新版本。 这是我正在尝试的: @(Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion) 这不起作用,它显示“ 1.0.0 ”而不是来自project.json的实际值 我也试过这个,但看起来它不再适用于RC2: @inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv My version number is @(appEnv.ApplicationVersion)

ASP.NET Core HTTPRequestMessage返回奇怪的JSON消息

我目前正在使用ASP.NET Core RC2,我遇到了一些奇怪的结果。 所以我有一个MVC控制器,具有以下function: public HttpResponseMessage Tunnel() { var message = new HttpResponseMessage(HttpStatusCode.OK); message.Content = new StringContent(“blablabla”, Encoding.UTF8); message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(“text/plain”); message.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue { NoCache = true }; return message; } 如果我用邮递员调用此方法并将Accept标头设置为text plain,我会收到以下回复: { “Version”: { “Major”: 1, “Minor”: 1, “Build”: -1, “Revision”: -1, “MajorRevision”: -1, “MinorRevision”: -1 }, “Content”: { “Headers”: […]

如何加载位于.net核心控制台应用程序中的文件夹中的程序集

我正在.Net Core平台上制作一个控制台应用程序,并且想知道,如何使用C#动态function加载程序集(.dll文件)和实例化类? 它似乎与.Net 4.X有很大的不同,并没有真正记录…… 例如,假设我有一个类库(.Net Core),它只有一个类: namespace MyClassLib.SampleClasses { public class Sample { public string SayHello(string name) { return $”Hello {name}”; } public DateTime SayDateTime() { return DateTime.Now; } } } 所以dll文件的名称是MyClassLib.dll ,它位于/dlls/MyClassLib.dll 。 现在我想在一个简单的控制台应用程序(.Net Core)中加载它并实例化Sample类并使用C#的动态function在以下控制台应用程序中调用方法: namespace AssemblyLoadingDynamic { public class Program { public static void Main(string[] args) { // load the assembly and use […]