Regarding the dependency warnings there is a restore packages on build option. That may assist you as well. I had this issue at first.
In your Web.Core project add the following line: //Enable multi clock support Clock.Provider = ClockProviders.Utc;
Please note that it is Web.Core and NOT Web.Mvc. This works for me using v4.4 with .net core & jquery.
I think with every major version release there will be needed changes even with the nuget approach. I believe that the ease of referencing certain components within Abp and accessing the source code will change somehow if the upgrade paths were automated. I am in favor of its current design.
While I may not be leveraging Abp for as long as other members on the forum, my environment has been successfully upgraded from 4.1 to 4.2 to 4.3 and 4.4 versions successfully leveraging Visual Studio TS and Master / DEV branches. Its really not as hard as everyone thinks for the core projects and files. If you are not using branching then yes it will be a nightmare.
Would love to share experiences with anyone who may need it via Skype or Teamviewer.
Unfortunately, I am using .net core (Full Framework) with jQuery. I am on version 4.4 at the moment. Will wait until the next version to upgrade to the latest release as I would like to test the IdentityServer integration
Thanks for your reply. The startup.cs in the .net core version has two Configure methods. I have uncommneted the Hangfire lines in each and then one by one and did not have success but maybe I am missing something as you mentioned. Here is the complete file.
#if FEATURE_SIGNALR using Owin; using Abp.Owin; using ProjectName.Web.Owin; #endif
namespace ProjectName.Web.Startup { public class Startup { private readonly IConfigurationRoot _appConfiguration;
public Startup(IHostingEnvironment env)
{
_appConfiguration = env.GetAppConfiguration();
}
public IServiceProvider ConfigureServices(IServiceCollection services)
{
//MVC
services.AddMvc(options =>
{
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
});
IdentityRegistrar.Register(services, "Application");
//Identity server
if (bool.Parse(_appConfiguration["IdentityServer:IsEnabled"]))
{
IdentityServerRegistrar.Register(services, _appConfiguration);
}
//Swagger - Enable this line and the related lines in Configure method to enable swagger UI
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Info { Title = "EnotchVnext API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
});
//Recaptcha
services.AddRecaptcha(new RecaptchaOptions
{
SiteKey = _appConfiguration["Recaptcha:SiteKey"],
SecretKey = _appConfiguration["Recaptcha:SecretKey"]
});
//Hangfire (Enable to use Hangfire instead of default job manager)
services.AddHangfire(config =>
{
config.UseSqlServerStorage(_appConfiguration.GetConnectionString("Default"));
});
services.AddScoped<IWebResourceManager, WebResourceManager>();
//Configure Abp and Dependency Injection
return services.AddAbp<EnotchVnextWebMvcModule>(options =>
{
//Configure Log4Net logging
options.IocManager.IocContainer.AddFacility<LoggingFacility>(
f => f.UseAbpLog4Net().WithConfig("log4net.config")
);
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//Initializes ABP framework.
app.UseAbp(options =>
{
options.UseAbpRequestLocalization = false; //used below: UseAbpRequestLocalization
});
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseDeveloperExceptionPage();
//Commented error pages
//app.UseStatusCodePagesWithRedirects("~/Error?statusCode={0}");
//app.UseExceptionHandler("/Error");
}
AuthConfigurer.Configure(app, _appConfiguration);
app.UseStaticFiles();
app.UseAbpRequestLocalization();
#if FEATURE_SIGNALR //Integrate to OWIN app.UseAppBuilder(ConfigureOwinServices); #endif
//Hangfire dashboard & server (Enable to use Hangfire instead of default job manager)
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
Authorization = new[] { new AbpHangfireAuthorizationFilter(AppPermissions.Pages_Administration_HangfireDashboard) }
});
app.UseHangfireServer();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "defaultWithArea",
template: "{area}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// Enable middleware to serve generated Swagger as a JSON endpoint
app.UseSwagger();
//Enable middleware to serve swagger - ui assets(HTML, JS, CSS etc.)
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "EnotchVnext API V1");
}); //URL: /swagger
}
#if FEATURE_SIGNALR private static void ConfigureOwinServices(IAppBuilder app) { app.Properties["host.AppName"] = "EnotchVnext";
app.UseAbp();
app.MapSignalR();
//Enable it to use HangFire dashboard (uncomment only if it's enabled in EnotchVnextWebCoreModule)
//app.UseHangfireDashboard("/hangfire", new DashboardOptions
//{
// Authorization = new[] { new AbpHangfireAuthorizationFilter(AppPermissions.Pages_Administration_HangfireDashboard) }
// //Authorization = new[] { new AbpHangfireAuthorizationFilter() }
//});
}
#endif } }
As a test have you tried to DisableValidation on the controller method? <a class="postlink" href="https://aspnetboilerplate.com/Pages/Documents/Validating-Data-Transfer-Objects">https://aspnetboilerplate.com/Pages/Doc ... er-Objects</a>
Also on the views do you have an AntiForgeryToken? Something like: @Html.AntiForgeryToken()
I had similar issues with my jQuery forms but not specific to the 4.4 upgrade rather from aspnetboilerplate.
I did some more research and I am not clear now the aspnet environment variable is being read/referenced.
There is a Microsoft article that references add the setting to your web.config as follows and this seems to work so far. <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>
I installed the Web Essentials plug-in and used the bundle and minify option there. My only issue here is that when the .min.js files are created, the files do not show in the bower folder path for that plug-in when the bower packages are stored upon project startup.
Hello,
I have not upgraded the hangfire packages.
It is the one which comes with AspNet Zero.
I am using jQuery & .Net Core and hope to move to a continuous deployment model in Azure. So far there are aspnetboilerplate, jquery & .net (aspnetzero) which are being migrated into .net core jquery (aspnetzero). For Development, Staging & Production environments while you specify your configuration for each environment in the solution Azure does not provide specific isolation for an application with these SDLC environments. Essentially to mimic that model you will need to create three App Services applications.
As for continuous integration/deployment, there are some problems with deploying in my case because when the site is in use the ProjectName.Application.dll is use which causes the continuous deployment task to fail. I have even tried setting the app variable to offline (which is not ideal) because it will take the app offline during deployment to free in use files but this also fails.
You may not face this behavior using the Angular version but this has been my experience. Also to note, this is not happening with the .net aspnetzero application.
Do you want the first domain name (domainABC.com) to remain in the browser url bar or can the user be redirected to tenanta.rootdomain.com? If not, then you can do this in DNS using cnames. If you do then I am not sure how the mapping management would work.