相关疑难解决方法(0)

如何绕过 Angular 应用程序的 .NET 6 SPA 代理?

编辑:我设法使用有效证书通过 IIS 运行此程序,但我还没有找到放弃新代理方法的方法。如果您想了解有关使用 IIS 而不是 IIS Express 的一些信息,请跳至结尾。

简而言之:使用最新的 ASP.NET 6 和 Angular 模板 (Visual Studio 2022),如何绕过反向代理并使用与以前版本的 .NET 相同的方法?我不想通过 SPA URL 运行应用程序,并将后端请求转发到 SPA 代理。

详细来说,我的目标:

  • 没有 IIS Express
  • 通过终端手动启动 Angular 服务器。
  • 配置 ASP.NET 应用程序以连接到 Angular 服务器,而不是启动自己的实例,
  • 使用自签名证书从 IIS 10 的本地实例运行 ASP.NET 应用程序。
  • 根据需要将调试器附加到 w3wp。

我想导航到https://mydomain.local并让它为所有内容提供服务,这在 .NET 6 之前不是问题。您可以使用UseProxyToSpaDevelopmentServer、运行npm start,一切都很好。

尽管我知道您仍然可以使用它,但 .NET 6 放弃了它Startup.cs,并且指南建议继续使用简化版Program.cs

我努力了:

  • 摆脱预启动脚本 ( aspnetcore-https.js)
  • proxy.conf.js通过删除 proxyConfig 属性来摆脱代理配置 ( )angular.json
  • 创建 IIS 启动配置文件并使用配置
  • 更改 .csproj …

asp.net iis visual-studio angular

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

如何在asp.net core 6中添加全局路由前缀

不幸的是,对以前版本的建议不起作用 如何在 asp.net core 3 中添加全局路由前缀?

app.UsePathBase(new PathString("/api"));
Run Code Online (Sandbox Code Playgroud)

也不是这个

public static class MvcOptionsExtensions
{
    public static void UseGeneralRoutePrefix(this MvcOptions opts, IRouteTemplateProvider routeAttribute)
    {
        opts.Conventions.Add(new RoutePrefixConvention(routeAttribute));
    }

    public static void UseGeneralRoutePrefix(this MvcOptions opts, string 
    prefix)
    {
        opts.UseGeneralRoutePrefix(new RouteAttribute(prefix));
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-core-6.0

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

ASP.NET Core 3 添加路由前缀

Startup.cs我添加api/到我的路线模式的开始。

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "api/{controller}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情:旧的 URL 继续工作,并且以 return 404 开头的 URL 继续工作。/api这没有任何意义!

如何让我的 API 在 下提供服务/api

asp.net-web-api asp.net-web-api-routing asp.net-core

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