小编Mar*_*kCo的帖子

MinimalAPI - 您是否打算将“Body(推断)”参数注册为服务或应用 [FromService] 或 [FromBody] 属性?

我创建了一个 asp.net core 空项目,每当我尝试运行我的应用程序时,它都会出现如下错误。当我点击播放时,我什至无法到达终点,它给出了错误。

System.InvalidOperationException HResult=0x80131509 Message=已推断主体,但该方法不允许推断主体参数。以下是我们找到的参数列表:

Parameter           | Source                        
---------------------------------------------------------------------------------
ur                  | Service (Attribute)
userLogin           | Body (Inferred)


Did you mean to register the "Body (Inferred)" parameter(s) as a Service or apply the [FromService] or [FromBody] attribute?
Run Code Online (Sandbox Code Playgroud)

不知道为什么我会收到此错误。然后我尝试添加[FromService],它也显示相同的错误。我针对同一问题阅读了这篇文章,但它说不要添加[Bind]我一开始就没有添加的内容,而是使用[FromService],但我仍然遇到相同的错误。我做错了什么吗?

Program.cs:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddDbContext<ApplicationDbContext>(x =>
    x.UseSqlServer(builder.Configuration.GetConnectionString("Default")));

builder.Services.AddScoped<IUserRepository, UserRepository>();

builder.Services.AddEndpointsApiExplorer();

builder.Services.AddSwaggerGen();

var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.MapGet("/userLogin", (IUserRepository ur, UserLogin userLogin) =>
{
    return ur.Get(userLogin);
});

if …
Run Code Online (Sandbox Code Playgroud)

http asp.net-core asp.net-core-webapi .net-6.0 minimal-apis

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

HttpClient - 请求被取消 - 超时已过 100 秒

我正在使用 blazor Web 程序集项目,然后是 asp.net core Web api 和共享项目。当运行我的两个项目并拉起邮递员执行 GET 请求时,https://localhost:5011/api/WebReport/GatherAllReports它会ReporterRepository从 blazor Web 程序集命中,当它命中第一行时,var response它会停留在该行上,然后最终经过很长一段时间后,它会在邮递员上显示...

System.Threading.Tasks.TaskCanceledException:由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消。

---> System.TimeoutException: 操作被取消。

---> System.Threading.Tasks.TaskCanceledException:操作已取消。

---> System.IO.IOException: 无法从传输连接读取数据: 由于线程退出或应用程序请求,I/O 操作已中止。

---> System.Net.Sockets.SocketException (995):由于线程退出或应用程序请求,I/O 操作已中止。
--- 内部异常堆栈跟踪结束 ---

在System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError错误,CancellationToken取消令牌)

在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 令牌)

在 System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter 适配器,内存`1 缓冲区)

在 System.Net.Http.HttpConnection.FillAsync(布尔异步)

在 System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(布尔异步,布尔折叠标题允许)

在 System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken CancellationToken)

--- 内部异常堆栈跟踪结束 ---

在 System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken CancellationToken)

在 System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage 请求,布尔异步,布尔 doRequestAuth,CancellationToken CancellationToken)

在System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage请求,布尔异步,CancellationToken取消令牌)

在 System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken CancellationToken)

在 Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage 请求,CancellationToken CancellationToken) …

c# dotnet-httpclient asp.net-core-webapi blazor-webassembly

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

Blazor 客户端 - 错误 NETSDK1082:“浏览器-wasm”

我创建了一个简单的 blazor wa 项目,并选择了托管选项。在项目的客户端,它会自动附带<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">. 然后,我在编写任何代码之前添加了一些 nuget 包,当我清理解决方案甚至重建解决方案时,它给了我错误:

错误 NETSDK1082:没有可用于指定 RuntimeIdentifier“browser-wasm”的 Microsoft.AspNetCore.App 运行时包。

我查了一下,发现一个解决方案是将 to 中的第一行更改.csproj<Project Sdk="Microsoft.NET.Sdk.Web">默认情况下的第一行。我这样做了,但是当我只运行客户端时,它显示 404。然后,如果我删除额外的软件包并将其放回默认的 sdk,它就可以工作。我在使用这些软件包时遇到此错误是否有原因?顺便说一句,我创建了一个 blazor wa 托管的 .net 6 项目。

我的客户端.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Blazored.LocalStorage" Version="4.1.5" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.12" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.ProtectedBrowserStorage" Version="5.0.0-rc.1.20451.17" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.0" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Identity.Web" Version="1.21.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    <PackageReference Include="RestSharp" Version="106.13.0" />
  </ItemGroup>

  
</Project>
Run Code Online (Sandbox Code Playgroud)

c# blazor blazor-webassembly

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

在 Blazor 客户端上添加 Application Insights (Web Assembly)

我想将 application Insights sdk 添加到 blazor Web Assembly 项目中。我发现了多篇文章,例如网页的 Application Insightsstackoverflow,它们正是我正在寻找的东西。但是,在添加来自 microsoft 链接的代码片段并在页面上使用 connectionString over InstrumentationKeyindex.html并注入IJSRuntime以从 .NET 代码调用 JavaScript 方法,然后调用 Application Inisghts 方法之后...在主页顶部运行应用程序时页面我将看到@inject IJSRuntime _jsRuntime。

在此输入图像描述

我是否没有正确设置注射?另外,我是否需要将这些代码行添加到每个剃刀组件(页面文件夹)中,或者只是将其放在index.html将涵盖从开始到结束的所有内容,无论我单击什么以及呈现哪个页面?

Index.html

@inject IJSRuntime _jsRuntime

<!DOCTYPE html>
<html>

<head>
    <script type="text/javascript">
        !function (T, l, y) { var S = T.location, k = "script", D = "connectionString", C = "ingestionendpoint", I = "disableExceptionTracking", E = "ai.device.", b = "toLowerCase", w = "crossOrigin", N = "POST", e …
Run Code Online (Sandbox Code Playgroud)

azure-application-insights blazor-webassembly

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

使用 PIT(时间点)ID 和 Search_After API -NEST ElasticSearch

我一直在阅读Point in time API,并希望在我的.net 应用程序中使用 NEST 来实现它。然而,在阅读那篇文章(.net 应用程序超链接)时,我看到了如下所示的 Fluent DSL 示例。有没有一种方法可以找到该 ID,而无需转到控制台上的 kibana 并进行查询搜索来获取 id,然后将该 id 放入“a-point-in-time-id”中?或者“a-point-in-time-id”是否会为您执行此操作,就像映射到 ID 一样?

s => s
.PointInTime("a-point-in-time-id", p => p
.KeepAlive("1m"))
Run Code Online (Sandbox Code Playgroud)

我知道在 kibana cli 控制台中如果您这样做:

POST /app-logs*/_pit?keep_alive=5m它会给你一个 PIT(时间点)ID。你如何在 NEST 中检索它?

当阅读search_after并尝试使用 Fluent DSL 示例在 .net 客户端使用后的搜索来实现它时。我注意到他们有“项目”一词,但没有说明示例中的“项目”是什么。那到底是什么?

s => s
.Sort(srt => srt
    .Descending(p => p.NumberOfCommits)
    .Descending(p => p.Name)
)
.SearchAfter(
    Project.First.NumberOfCommits,
    Project.First.Name
)
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试实现.PointInTime()and .Sort().SearchAfter()但卡住了。

var response = await …
Run Code Online (Sandbox Code Playgroud)

c# console-application elasticsearch nest elasticsearch-dsl

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

Visual Studio 2022 调试 Azure 应用服务

我正在关注多篇关于如何在 vs 2022 上调试 azure 应用程序服务的文章。我了解到 Cloud Explorer 在 2022 年已被弃用,所以我遇到了这个类似的问题,在我将调试器附加到托管部分后,我不断地遇到一个主要问题问题。

Visual Studio 2022 远程调试器 (MSVSMON.EXE) 似乎未在远程计算机上运行。这可能是因为防火墙阻止与远程计算机的通信。请参阅“帮助”以获取有关配置远程调试的帮助

我转到 Windows Defender 防火墙 -> 允许应用程序或功能通过 Windows Defender 防火墙,并确保选中了 Visual Studio 2022 远程调试器。我什至转到安装 VS 的目录,然后转到 Common7/IDE/RemoteDebugger/x64/msvsmon.exe 并单击它来启动它,其中指出

Msvsmon 启动了一个名为“Home”的新服务器。等待新的连接。

然后,我搜索“防火墙和网络保护”->“高级设置”->“入站规则”,并确保 Visual Studio 2022 远程调试器上有一个绿色复选标记。我检查了出站规则,Visual Studio 2022 远程调试器不在那里,我发现添加到出站规则是可选的。因此,在完成所有这些操作并关闭 VS 并重新打开它并尝试再次附加调试器之后,我仍然遇到在满足所有要求之前遇到的相同错误。我什至关闭了防火墙来测试它,但仍然收到相同的错误消息。当我尝试附加调试器时,是否缺少某些内容导致此错误仍然出现?

remote-debugging azure azure-web-app-service visual-studio-2022

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