.net core 信号器在通知/协商请求时抛出405错误

.net core 信号器在通知/协商请求时抛出405错误,.net-core,signalr,.net Core,Signalr,我通过以下方式连接到服务器: this._hubConnection = new signalR.HubConnectionBuilder() .withUrl(location.protocol + '//localhost:5000/notify') .configureLogging(signalR.LogLevel.Information) .build(); 代码或主机没有问题。这个请求有效 但是图书馆又打了一个额外的电话: http://localhost:50

我通过以下方式连接到服务器:

    this._hubConnection = new signalR.HubConnectionBuilder()
  .withUrl(location.protocol + '//localhost:5000/notify')
  .configureLogging(signalR.LogLevel.Information)
  .build();
代码或主机没有问题。这个请求有效

但是图书馆又打了一个额外的电话:

http://localhost:5000/notify/negotiate
然后我得到这个错误:

HTTP错误405

客户端中的完整错误为:

飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 进入

除上述请求外,我在该站点中没有cors问题

我在startup.cs中配置了这个

     app.UseCors(builder =>
              builder.WithOrigins("http://localhost:4200").AllowAnyMethod
 ().AllowAnyHeader().AllowAnyOrigin());
该代码适用于所有站点


如果其余请求正常,为什么会出现突然的cors错误?

我建议您直接配置web应用程序的web.config文件,并添加以下代码行(它在IIS上工作,不一定适用于IIS Express):



UseCors
调用中,您有
WithOrigins(…)
AllowAnyOrigin()
。删除
AllowAnyOrigin()
调用,看看是否有效?我在.net中找不到这个core@JohanVanWambeke我提供的解决方案仅适用于.NET标准,不适用于.NET核心
     app.UseCors(builder =>
              builder.WithOrigins("http://localhost:4200").AllowAnyMethod
 ().AllowAnyHeader().AllowAnyOrigin());
<system.webServer>
   <httpProtocol>
      <customHeaders>
         <add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
         <add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS,PUT,DELETE,PATCH" />
         <add name="Access-Control-Allow-Headers" value="Content-Type, X-Requested-With" />
         <add name="Access-Control-Allow-Credentials" value="true" />
      </customHeaders>
   </httpProtocol>
</system.webServer>