小编Fab*_*uez的帖子

是否可以从 Postman 调用 SignalR Hub

我有一个带有 SignalR 集线器的 ASP .Net Core 2.2 Web API。是否可以使用 Postman 调用其方法之一(例如,SendMessageToAll)?问题是我只有 API - 没有前端 - 我需要测试。

我尝试将 URl 放到 Postman (api.mydomain.com/chatHub) 中的集线器,但后来我不确定如何构建主体。我知道 SignalR 最好使用 WebSockets,我不知道 PostMan 是否具有 WebSocket 功能。如果 WebSockets 不可用,我相信 SignalR 也可以执行 HTTP 请求,这是 Postman 可以做的。但我用的是什么身体?我是使用 HTTP GET 还是 POST?

我在 Postman 中看到有人在使用这个 body 的帖子:

{
    "Target": "SendMessageToGroup",
    "Arguments": [
        "groupA",
        "hello from server"
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试了相同的方法,但是当我在邮递员上单击“发送”时,我的集线器的 SendMessageToGroup 方法不会被触发。

在此处输入图片说明

谢谢

signalr signalr-hub signalr.client postman asp.net-core-webapi

19
推荐指数
3
解决办法
9780
查看次数

Azure Monitor/Application Insights 不显示错误的堆栈跟踪

我有一个托管在 Azure 应用服务上的 ASP .Net Core 3.0 Web API。我试图找出为什么它在控制器操作方法之一中抛出 500 内部服务器错误。我已经设置了 Application Insights,并且可以在 Azure 门户上的“失败”页面上看到有多个 500 异常。但是,我看不到它们的堆栈跟踪。我需要做什么才能在 Application Insights 或 Azure Monitor 中打开堆栈跟踪报告。PS 即使我的 API 在 .Net Core 2.2 上,它也没有显示堆栈跟踪,因此它不是 .Net Core 3.0 的东西。

这是一些屏幕截图:

在此输入图像描述

在此输入图像描述

azure azure-monitoring asp.net-core-mvc azure-application-insights

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

查看EF Core生成的sql查询

反正有没有看到EF Core正在生成什么SQL查询?(ASP .Net Core 1.1)

entity-framework asp.net-core-mvc asp.net-core-webapi asp.net-core-1.1

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

错误请求 - 从LAN访问localhost Web API或Web App时无效的主机名

我在Windows 10上的Visual Studio 2017上运行了我的本地主机上的ASP .Net Core 1.1 Web API和Web App.

当我运行项目时,API运行在http:// localhost:50082/api /http:// localhost:60856 /上的Web应用程序

但是,如果局域网上的其他人试图访问它(使用我的计算机的IP地址 - http://192.168.1.101:60856/他们得到一个

错误请求 - 无效的主机名

错误.事实上,.我也得到这个错误,我使用我的IP地址.我在C:\ Users\Documents\IISExpress\config\applicationhost.config文件中尝试过十几种变体,例如:

<bindings>
<binding protocol="http" bindingInformation="*:60856:localhost" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

<bindings>
<binding protocol="http" bindingInformation="*:60856:" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

每次都重新启动项目(以及IIS Express),但似乎没有任何工作.有任何想法吗?

iis-express asp.net-core-mvc asp.net-core-1.1

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

调试Swashbuckle错误 - 无法加载API定义

有没有办法在Swashbuckle/Swagger错误上获得堆栈跟踪或内部异常?在某些时候,它停止了工作.我不确定是不是在我从.Net Core 2.0升级到2.1时,但我很确定它在那之后仍在工作.当我导航到myapidomain/swagger/index.html时,我收到此错误:

在此输入图像描述

哪个不是很有帮助.它工作了两周左右...我没有更改任何Swagger配置.它与以往一样:

public void ConfigureServices(IServiceCollection services)
{
    ...
     services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info
            {
                Version = "v1",
                Title = "My.API",
                Description = "Test"
            });
        });   
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
        app.UseDeveloperExceptionPage();
    else
        app.UseHsts();

    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "PropWorx API V1");
    });
    ...
}
Run Code Online (Sandbox Code Playgroud)

我在ASP.Net Core 2.1 Web API上使用Swashbuckle.AspNetCore 3.0.0.

swagger swashbuckle asp.net-core-webapi asp.net-core-2.1 .net-core-2.1

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

如何将事件记录到 ASP.NET Core Web API 中的事件查看器?

我正在尝试登录到 Windows Server 2016 Standard 上托管的 ASP.NET Core 2.1 Web API 中的事件查看器。

我的控制器中有这个:

private readonly ILogger<MyController> _logger;
private readonly MyContext _context;

public TestController(MyContext context, ILogger<MyController> logger)
{
    _context = context;
    _logger = logger;
}
Run Code Online (Sandbox Code Playgroud)

但我认为我在 Program.cs 中的 CreateWebHostBuilder() 方法中做错了,因为它不起作用:

我有这个:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)

我将其修改为:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddEventSourceLogger();
            });
Run Code Online (Sandbox Code Playgroud)

但我一定是做错了什么......有什么想法吗?我在这里读到,显然 EVent Viewer 日志记录现在已融入 .Net Core 2.1 Write to EventLog in .Net Core

logging .net-core asp.net-core asp.net-core-webapi

7
推荐指数
2
解决办法
6684
查看次数

忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功的条目

我有一个 ASP .Net Core 2.2 Web API。在我的一个控制器操作中,我向 MySQL 数据库表中添加了一堆行(我使用的是 Pomelo)。

例如:

_dbContext.AddRange(entities);
_dbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我添加的实体有两个主键(复合主键),当我将它们添加到 DbContext 时,这些键已经填充在实体集合中(即我自己设置键 - 没有“自动增量”或类似的东西数据库生成密钥的地方)

如果我添加的任何实体已经存在于数据库中,就重复的主键而言,那么显然 SaveChanges() 会抛出异常,并且整个事务将回滚。

有没有办法告诉 EF Core 忽略失败的实体?即忽略数据库中已经存在的实体,并提交成功的实体(即数据库中不存在的实体)?而不是抛出异常并回滚整个事务的当前行为?

谢谢

mysql dbcontext asp.net-core ef-core-2.2 entity-framework-core-2.2

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

开发过程中 Web.config 在哪里?

当我发布我的 ASP .Net Core 1.1 MVC Web 应用程序时,我看到 Publish 文件夹包含一个Web.config文件,我可以在其中设置stdoutLogEnabled等。但是,在开发时我根本看不到这个文件 - 看起来它是在什么时候生成的发布...因此,我如何在此文件中设置变量而不必在每次发布后手动编辑文件?

asp.net-core-mvc asp.net-core

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

将代码从 RestSharp 转换为 HttpClient

有人可以帮我将使用 RestSharp 的这个 ASP .Net Core 示例(在我的 Web Api 中使用以使用来自 Auth0 的管理 API)转换为一个使用 HttpClient 的示例吗?

var client = new RestClient("https://YOUR_AUTH0_DOMAIN/oauth/token");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"grant_type\":\"client_credentials\",\"client_id\": \"YOUR_CLIENT_ID\",\"client_secret\": \"YOUR_CLIENT_SECRET\",\"audience\": \"https://YOUR_AUTH0_DOMAIN/api/v2/\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

我一直在挣扎......我有这个:

var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.BaseAddress = new Uri("https://YOUR_AUTH0_DOMAIN/oauth/token");
Run Code Online (Sandbox Code Playgroud)

但我不确定其余的...谢谢

c# restsharp asp.net-core-webapi asp.net-core-1.1

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

如何在不使用“BinaryFormatter”的情况下创建深度克隆?

我有一些 C# 代码用于执行对象的深层复制:

    public static T Copy<T>(T objectToCopy)
    {
        T result = default(T);

        using (var memoryStream = new MemoryStream())
        {
            var formatter = new BinaryFormatter();
            formatter.Serialize(memoryStream, objectToCopy);
            memoryStream.Seek(0, SeekOrigin.Begin);
            result = (T)formatter.Deserialize(memoryStream);
            memoryStream.Close();
        }

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我从 Visual Studio 收到此警告:

警告 SYSLIB0011
'BinaryFormatter.Serialize(Stream)' 已过时:'BinaryFormatter 序列化已过时,不应使用。有关更多信息,请参阅https://aka.ms/binaryformatter

我收到同样的警告BinaryFormatter.Deserialize(Stream)

我查看了建议的链接,他们列出了一些首选的替代方案:

  • XmlSerializer并将DataContractSerializer对象图序列化为 XML 和从 XML 序列化。不要DataContractSerializerNetDataContractSerializer.
  • BinaryReader以及BinaryWriterXML 和 JSON。
  • System.Text.Json对象图序列化为 JSON的API。

我只是在努力弄清楚在我的具体情况下我将如何实施这些替代方案之一。

如果有人能在这方面帮助我,我将不胜感激。

谢谢你。

c# deprecation-warning .net-core

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