I just installed the Linux Sub system on windows and got Redis working on it
I will be doing a video on how to setup redis and RabbitMQ and will post it on LearnABPFramework.com
If you're creating a bug/problem report, please include followings:
I was preparing a video for ABP Commercial Funtions and Features and I think I have found a bug. The contact form doesnt work becuase the button is not of type submit
so the javascript never fires to execute the submit
the error is in Volo.CmsKit.Pro.Public.Web
projects in the file /Pages/Public/Shared/Components/Contact/Default.cshtml
button is like this
<abp-button class="btn btn-send-message" button-type="Danger">@L["SendMessage"] <i class="fa fa-long-arrow-right"></i></abp-button>
it should be like this
<abp-button class="btn btn-send-message" type="submit" button-type="Danger">@L["SendMessage"] <i class="fa fa-long-arrow-right"></i></abp-button>
I run the public site and get the following Redis error, Redis is properly installed and working on my machine
13:31:01 WRN] No connection is active/available to service this operation: EVAL; An existing connection was forcibly closed by the remote host., mc: 1/1/0, mgr: 10 of 10 available, clientName: CANZ-50099848H, IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=3,Free=32764,Min=8,Max=32767), v: 2.2.4.27433 StackExchange.Redis.RedisConnectionException: No connection is active/available to service this operation: EVAL; An existing connection was forcibly closed by the remote host., mc: 1/1/0, mgr: 10 of 10 available, clientName: CANZ-50099848H, IOCP: (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=3,Free=32764,Min=8,Max=32767), v: 2.2.4.27433 ---> StackExchange.Redis.RedisConnectionException: SocketFailure (ReadSocketError/ConnectionReset, last-recv: 56) on 127.0.0.1:6379/Subscription, Idle/Faulted, last: SUBSCRIBE, origin: ReadFromPipe, outstanding: 0, last-read: 8s ago, last-write: 8s ago, keep-alive: 60s, state: ConnectedEstablished, mgr: 7 of 10 available, in: 0, in-pipe: 0, out-pipe: 0, last-heartbeat: 0s ago, last-mbeat: 0s ago, global: 0s ago, v: 2.2.4.27433 ---> Pipelines.Sockets.Unofficial.ConnectionResetException: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host. at Pipelines.Sockets.Unofficial.Internal.Throw.Socket(Int32 errorCode) in //src/Pipelines.Sockets.Unofficial/Internal/Throw.cs:line 59 at Pipelines.Sockets.Unofficial.SocketAwaitableEventArgs.g__ThrowSocketException|10_0(SocketError e) in //src/Pipelines.Sockets.Unofficial/SocketAwaitableEventArgs.cs:line 86 at Pipelines.Sockets.Unofficial.SocketAwaitableEventArgs.GetResult() in //src/Pipelines.Sockets.Unofficial/SocketAwaitableEventArgs.cs:line 79 at Pipelines.Sockets.Unofficial.SocketConnection.DoReceiveAsync() in //src/Pipelines.Sockets.Unofficial/SocketConnection.Receive.cs:line 64 --- End of inner exception stack trace --- at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result) at System.IO.Pipelines.Pipe.GetReadAsyncResult() at StackExchange.Redis.PhysicalConnection.ReadFromPipe() in //src/StackExchange.Redis/PhysicalConnection.cs:line 1496 --- End of inner exception stack trace --- --- End of inner exception stack trace --- at StackExchange.Redis.ConnectionMultiplexer.ThrowFailed[T](TaskCompletionSource1 source, Exception unthrownException) in //src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2760 --- End of stack trace from previous location --- at Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.SetAsync(String key, Byte[] value, DistributedCacheEntryOptions options, CancellationToken token) at Volo.Abp.Caching.DistributedCache2.<>c__DisplayClass51_0.<g__SetRealCache|0>d.MoveNext() [13:31:01 WRN] ---------- Exception Data ---------- Redis-Multiplexer-Connects = 1/1/0 Redis-Manager = 10 of 10 available Redis-Client-Name = CANZ-50099848H Redis-ThreadPool-IO-Completion = (Busy=0,Free=1000,Min=8,Max=1000) Redis-ThreadPool-Workers = (Busy=3,Free=32764,Min=8,Max=32767) Redis-Busy-Workers = 3 Redis-Version = 2.2.4.27433 redis-command = EVAL request-sent-status = WaitingToBeSent
So you mean you are not using the dynamic form tag anymore ?
Hi I would like to know how you fix it … can you give me the issue number or the commit which this is fixed in so I can learn my self please I think it will be in dynamic taghelperservice ?
No I didn’t have any extra properties
I am using 5.1.4 commercial version Download the payment module and check the plan createmodal under the admin folder. It uses a dynamic form with the view model which has extra properties when null produces 3 count fields.
We are working with a client of ours DesertFire Online and we want to allow for users with apostrophes in their email addres for example PeterO'Neil@somedomain.com
however the attribute which is used in IdentityUserCreateOrUpdateDtoBase
is [EmailAddress]
which doesn't accept apostrophes
see below code snnipet
using System;
using System.ComponentModel.DataAnnotations;
using JetBrains.Annotations;
using Volo.Abp.ObjectExtending;
using Volo.Abp.Validation;
namespace Volo.Abp.Identity;
public abstract class IdentityUserCreateOrUpdateDtoBase : ExtensibleObject
{
[Required]
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxUserNameLength))]
public string UserName { get; set; }
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxNameLength))]
public string Name { get; set; }
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxSurnameLength))]
public string Surname { get; set; }
[Required]
**[EmailAddress]**
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxEmailLength))]
public string Email { get; set; }
[DynamicStringLength(typeof(IdentityUserConsts), nameof(IdentityUserConsts.MaxPhoneNumberLength))]
public string PhoneNumber { get; set; }
public bool IsActive { get; set; }
public bool LockoutEnabled { get; set; }
[CanBeNull]
public string[] RoleNames { get; set; }
protected IdentityUserCreateOrUpdateDtoBase() : base(false)
{
}
}
since this is a abstract class and the properties are not virtual we cannot override this, can you please let us know how we can change the [EmailAddress]
attribute to the below regular expression which accepts aprostphes in email addresses please?
[RegularExpression(@"^[\w-']+(\.[\w-']+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$")]