小编Dav*_*vid的帖子

.Net Core MVC Routing:根据每个控制器设置MapSpaFallbackRoute

我正在开发一个涉及多个单页应用程序的项目,这些应用程序托管在单个.Net Core 1.0 Web应用程序上.

目标是对每个SPA进行分区,使它们全部分开存在,每个SPA都有自己的视图和控制器.

在Startup.cs中,我使用Microsoft.AspNetCore.SpaServices MapSpaFallbackRoute传递到SPA的深层链接(在本例中为Angular 2),因此MVC不会混淆并在页面刷新时抛出404.

当我在MapSpaFallbackRoute中手动设置Controller时,我一次为一个SPA工作,但我无法找到为每个SPA控制器有条件地设置它的方法.

我假设Mapwhen()和Run()的组合将我带到我需要的位置,但我似乎无法使语法正确.

假设SPA被命名为'Dash1','Dash2'等.以下后备路由适用于Dash1:

 app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

            routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
        });
Run Code Online (Sandbox Code Playgroud)

我试过这个:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });
        app.Map("/Dash1", HandleDash1);

    }

    private static void HandleDash1(IApplicationBuilder app)
    {
        app.UseMvc(routes =>
        {
            routes.MapSpaFallbackRoute("spa-fallback", new { controller = "Dash1", action = "Index" });
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

...但是当我导航到Dash1并尝试刷新页面时,浏览器会将'/ Dash1 /'添加到所有http请求中并中断所有内容.

single-page-application asp.net-core-mvc asp.net-core-1.0 asp.net-core-middleware angular

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

发布后直到重新启动时Azure Web应用程序代码才更新(VS2017)

我正在开发一个多层Web应用程序,该应用程序由Azure App Service Environment中的多个Web API组成.

最近在升级到VS2017之后,我注意到在我发布新代码(来自VS)之后,应用程序将随机无法更新.远程调试器无法正确加载,旧代码将在发布后继续运行.

我在发布设置中选择"删除目的地的其他文件".

重新启动应用程序通常会暂时解决问题,但有时我必须停止并重新启动每个应用程序.

VS或Azure中是否有任何可能影响此行为的新设置,或者是否无法正常工作?

azure-web-sites azure-app-service-envrmnt

4
推荐指数
3
解决办法
4248
查看次数