小编Zio*_*Hai的帖子

如何在 Windows 10 IIS 中的 Blazor Server 应用程序上支持多个浏览器选项卡?

我将 Blazor 服务器应用程序发布到 Windows 10 上的本地 IIS。它运行良好,但我无法打开网站的多个窗口/选项卡。如果我尝试,它会永远加载,直到我关闭以前的应用程序窗口。

此行为是否是由于 Windows 10 上的 SignalR 受到限制所致?或者我错过了什么?除此之外,该应用程序按预期编译并运行。

应用程序池采用无托管代码、集成的方式。IIS 10。

更新

这种情况不会发生在 IIS Express 上,只会发生在本地 IIS 上。

应用程序设置.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "env": "dev",
  "connStrDev": "my dev conn",
  "connStrTest": "my test conn",
  "BaseUrl": "http://localhost/MyProjectName/"
}
Run Code Online (Sandbox Code Playgroud)

应用程序.Razor:

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>
Run Code Online (Sandbox Code Playgroud)

MainLayout.razor:

@inherits LayoutComponentBase
@using Domain.Models.Static 
<head>

</head> …
Run Code Online (Sandbox Code Playgroud)

c# iis asp.net-core blazor blazor-server-side

6
推荐指数
0
解决办法
1650
查看次数

NetTopologySuite Distance 在 .net Core 3 中返回奇怪的结果

在我的 .Net Core 3 API 中,我设置了这样的用户位置:

userDetails.Location = new Point(userDetails.latitude, userDetails.longitude)
{
   SRID = 4326
};

Run Code Online (Sandbox Code Playgroud)

当我尝试让用户进入给定半径时

double radiusMeters = userSettings.Radius;
var usersWithinRadius = Context.UserDetails.Where(ud => ud.Location.Distance(userDetails.Location) <= radiusMeters).ToList();
Run Code Online (Sandbox Code Playgroud)

例如,当我将半径设置为 75000 米时,当用户位置为 (32.600248, 35.1225) 时,它返回一个超过 90km 距离的点 (31.78562, 35.115335)

我究竟做错了什么?

c# nettopologysuite asp.net-core .net-core-3.0

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

EF Core 导航属性包含使用左连接而不是内连接

在我的 API 项目中,我有

public class Team
{
    [Key]
    public long Id { set; get; }
    [Required]
    public TeamSettings TeamSettings { get; set; }
}

public class TeamSettings
{
    [Key]
    [Required]
    [Column("TeamSettingsId")]
    public long Id { set; get; }
    [Required]
    [ForeignKey("TeamId")]
    public long TeamId { get; set; }
    [Required]
    public Team Team { set; get; }
}
Run Code Online (Sandbox Code Playgroud)

当我使用

var team = await TeamRepo.GetAsync(t => t.Id == teamId, includes);
Run Code Online (Sandbox Code Playgroud)

我可以在我的 SQL Server Profiler 上看到左联接而不是内联接。

我尝试删除注释并像这样流利:

modelBuilder.Entity<Team>()
                    .HasOne(t => t.TeamSettings)
                    .WithOne(ts => ts.Team) …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework-core .net-core asp.net-core

4
推荐指数
1
解决办法
1273
查看次数

SignalR .Net Core 3.1 Web 应用程序无法在本地 IIS 上运行

尝试基于使用 ASP.Net Core 3.1 和 Angular 的在线示例创建聊天。

以下内容在 IIS Express 上运行良好,但不适用于本地 IIS。

错误消息:WebSocketTransport.js:85 WebSocket 连接到“ws://localhost/MyCoreAPI/ChatHub”失败:WebSocket 握手期间出错:意外响应代码:400

启动:

    public void ConfigureServices(IServiceCollection services)
    { 
        services.AddSignalR();
    }
    public void Configure(IApplicationBuilder app, 
                          IWebHostEnvironment env, 
                          ApplicationDbContext context)
    {

        app.UseCors("EnableCORS");
        app.UseMiddleware<ErrorHandlingMiddleware>();
        app.UseMiddleware<TokenServiceMiddleware>();

        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseEndpoints(route =>
        {
            route.MapHub<ChatHub>("/ChatHub");
        });
        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=auth}/{action}/");

        });


        app.Run(async (c) =>
        {
            await c.Response.WriteAsync("My Core Web API");
        });
    }
Run Code Online (Sandbox Code Playgroud)

聊天中心:

public class ChatHub : Hub
{
    public Task SendMessageToAll(Message message) =>
         Clients.All.SendAsync("receiveMessage", message); …
Run Code Online (Sandbox Code Playgroud)

.net signalr .net-core asp.net-core

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

如何修复 Blazor WASM 内存访问越界错误?

启动了一个新的 Blazor WebAssembly 项目(Windows 10,Visual Studio 2019),尝试从服务器端通过 HttpClient 获取一个简单的列表。

错误:

00755c3a:0xa3a0 Uncaught (in promise) RuntimeError: memory access out of bounds
    at malloc (<anonymous>:wasm-function[359]:0xa3a0)
    at monoeg_malloc (<anonymous>:wasm-function[161]:0x3c71)
    at stack_frag_new (<anonymous>:wasm-function[2019]:0x59758)
    at add_frag (<anonymous>:wasm-function[1430]:0x3ccf2)
    at interp_exec_method (<anonymous>:wasm-function[1120]:0x2f609)
    at interp_runtime_invoke (<anonymous>:wasm-function[5655]:0xf7391)
    at mono_jit_runtime_invoke (<anonymous>:wasm-function[5109]:0xddb3d)
    at do_runtime_invoke (<anonymous>:wasm-function[1410]:0x3ba85)
    at mono_runtime_try_invoke (<anonymous>:wasm-function[418]:0xcfdb)
at mono_runtime_invoke (<anonymous>:wasm-function[1610]:0x44b39)
Run Code Online (Sandbox Code Playgroud)

服务器端(正确返回):

    [HttpGet]
    public async Task<IEnumerable<UserDetailsRM>> Get()
    {
        var users = await UserService.GetUsers();
        return users;
    }
Run Code Online (Sandbox Code Playgroud)

客户端:尽管得到了结果,但不渲染任何东西。

<div class="userListWrapper">
        @if (Users != null)
        {
            <table class="table table-borderless" style="font-size:12px; font-family:arial; height: 
                500px; …
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core blazor blazor-webassembly

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