На моем веб-сайте ASP.NET MVC в файле RouteConfig.cs
есть код, который заставляет URL включать «www»:
using Canonicalize;
using System.Configuration;
using System.Web.Routing;
namespace MyWebsite
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
if (ConfigurationManager.AppSettings["Production"] == "true")
{
routes.Canonicalize().Www();
}
}
}
}
Я размещаю свой веб-сайт в Azure, который имеет «развертывание».слоты «.Я выталкиваю свой код в «промежуточный» слот, тестирую и затем «заменяю» «промежуточный» слот на «производственный» слот.
В приведенном выше коде вы можете видеть, что я условно включаюroutes.Canonicalize().Www();
только для производственного слота.Это связано с тем, что в промежуточном слоте используется URL-адрес, который не допускает "www."Когда я загружаю сайт, RouteConfig.cs
выполняется, а routes.Canonicalize().Www();
корректно исключается.Когда я меняю слоты, код RouteConfig.cs
, кажется, не выполняется повторно, и routes.Canonicalize().Www();
остается исключенным, что не то, что я хочу.
Есть ли способ, которым я могу надежно и точно иметьroutes.Canonicalize().Www();
включен только для производственного слота?