" Bağımlılık enjeksiyonunun yanlış kullanımının hataya neden olabileceği konusunda birçok yanıt gördüm.Bağımlılık enjeksiyonu kullanmıyorum, ancak "Bir denetleyici oluşturmaya çalışırken bir hata oluştu" türü "
'FranchiseUserController' türünde bir denetleyici oluşturmaya çalışırken bir hata oluştu. Denetleyicinin parametresiz bir kamu kurucusuna sahip olduğundan emin olun.
ama Ayrıca, bu hata benim yerel geliştirme ortamında olmaz vb Ninject, Unity gibi herhangi bağımlılık enjeksiyon ürünleri kullanarak değilim, ama bizim QA sunucuda sınarken kendini göstermesidir. Ayrıca, aralıklı olarak oluşur ve Web API yöntemlerimin birçoğunda gerçekleşir. Birden çok kullanıcı ve birden çok tarayıcı ile gerçekleşir.
Burada hangi kodun gönderileceğinden emin değilim. Daha fazla bilgiye ihtiyacın olursa haber ver ve onu göndermekten memnuniyet duyarım.
Bu AngularJS kullanarak bir ASP.NET MVC/WebAPI uygulamasıdır. Web API denetleyicisini Angular istemcisinden çağırırken hata oluşur. açısal uygulama ... olan bir 500 iç sunucu hatası ile
Veri durum mesajı hata geri arama cevap alma edilir: tipte bir denetleyicisi oluşturmak için çalışılırken bir hata oluştu 'FranchiseUserController'. Denetleyicinin parametresiz bir kamu kurucusuna sahip olduğundan emin olun. Veri durum türü: iletisi Burada
hata belirtilen kontrol cihazı ve çağrılan yönteminden kurucudur.
yapıcı
public FranchiseUserController()
{
_sm = new SettingManager();
_millicare_connectionString = _sm.conn_MilliCareSvcConnectionString();
_maa_connectionString = _sm.conn_MaaSvcConnectionString();
if (AppConstants.OverrideSecurityLocal && _sm.ServiceConfiguration() == ServiceConfigurationValues.LOCAL)
{
_acsUser.Name = Environment.UserName;
_acsUser.MaaUserGuid = _sm.developerAdGuid().ConvertAdGuidToMaaGuid();
_acsUser.Role = _sm.app_TestUserRole();
}
else {
ClaimsPrincipal userClaims = (ClaimsPrincipal)this.User;
_acsUser.Name = ((ClaimsIdentity)userClaims.Identity).FindFirst(MiddlewareClaimTypes.Name).Value;
_acsUser.MaaUserGuid = ((ClaimsIdentity)userClaims.Identity).FindFirst(MiddlewareClaimTypes.MaaUserGuid).Value;
_acsUser.Role = AppConstants.RoleNotAuthorized;
//Get user role
if (ApplicationMiddleware.Security.Extensions.HasClaim(userClaims, AppConstants.Maint_Option, AppConstants.Maint_Action, AppConstants.Maint_SecureValue_Approver, _sm.acs_MAAFranchiseResourceMaint()))
{
_acsUser.Role = AppConstants.RoleApprover;
}
else if (ApplicationMiddleware.Security.Extensions.HasClaim(userClaims, AppConstants.Maint_Option, AppConstants.Maint_Action, AppConstants.Maint_SecureValue_Admin, _sm.acs_MAAFranchiseResourceMaint()))
{
_acsUser.Role = AppConstants.RoleAdmin;
}
else if (ApplicationMiddleware.Security.Extensions.HasClaim(userClaims, AppConstants.Resource_Option, AppConstants.Resource_Action, AppConstants.Resource_SecureValue_Franchise, _sm.acs_MAAFranchiseResourceReports()))
{
_acsUser.Role = AppConstants.RoleFranchise;
}
}
}
... ve yöntem
[ValidateCustomAntiForgeryToken]
[HttpPost]
public HttpResponseMessage UpdateAddress(Address_dto Value)
{
HttpResponseMessage srvresponse = new HttpResponseMessage();
if (_acsUser.Role == AppConstants.RoleAdmin || _acsUser.Role == AppConstants.RoleApprover)
{
Value.modified_user = _acsUser.Name;
srvresponse = WrapServiceCall<string>((serviceResult, responseMessage) =>
{
MilliCareSvcClient().Using(svc =>
{
serviceResult.OperationSuccessful = svc.UpdateAddress(Value);
});
});
return srvresponse;
}
else
{
var noaccessServiceResult = new ServiceResult<string>();
noaccessServiceResult.SetUnauthorizedMessage();
srvresponse.Content = new ObjectContent<ServiceResult<string>>(noaccessServiceResult, new System.Net.Http.Formatting.JsonMediaTypeFormatter());
return srvresponse;
}
//});
}
Bu sınıfta başka kurucu yok mu? Eğer öyleyse, bana göre bir hata gibi geliyor. – mason
Hayır, bu kadar. Herhangi bir geçici çözüm var mı? –
Cevap garip ama bunun sadece QA ortamı olduğunu söylediğinden beri yardımcı olup olmadığına bakın. http://forums.asp.net/t/2027017.aspx?Web+API+2+0+An+error+occurred+when+trying+to+create+a+controller+of+type+ – Gomes