का उपयोग करते समय मैं एक एएसपी.नेट एमवीसी 4 वेबएपीआई को स्वयं होस्ट करने के लिए HttpSelfHostServer का उपयोग करने का प्रयास कर रहा हूं। सब कुछ ठीक है मैं कस्टम निर्भरता रिज़ॉल्वर जोड़ने की कोशिश करता हूं। (आखिरकार यह स्ट्रक्चर मैप का उपयोग करेगा, लेकिन मैं अभी तक उस बिंदु तक नहीं पहुंच पाया है)।"विरासत सुरक्षा नियमों का उल्लंघन" HttpSelfHostServer और IDependencyResolver
TypeLoadException: विरासत सुरक्षा नियमों प्रकार से उल्लंघन किया: 'System.Web.Mvc.CompareAttribute' यदि मैं एक कस्टम समाधानकर्ता का दृष्टांत करने की कोशिश, मैं निम्नलिखित अपवाद जब सर्वर की शुरूआत मिलता है। व्युत्पन्न प्रकारों को या तो आधार प्रकार की सुरक्षा पहुंच या कम पहुंच योग्य होना चाहिए।
कोड इस प्रकार है:
public class CustomDependencyResolver : IDependencyResolver
{
public object GetService(Type serviceType)
{
return null;
}
public IEnumerable<object> GetServices(Type serviceType)
{
return null;
}
}
...
// To trigger the exception, all I need to do is instantiate the custom resolver.
var dependencyResolver = new CustomDependencyResolver();
// Exception is thrown when I create the server:
var server = new HttpSelfHostServer(_config);
ध्यान दें कि मैं रिसोल्वर के साथ कुछ भी करने को नहीं है - यह भोला आदमी है, वाई यह instantiating जो विफलता बाद में चलाता है का कार्य।
विचित्र रूप से पर्याप्त, यह अपवाद केवल डीबग (एफ 5) में होता है - अगर मैं Ctrl + F5 के माध्यम से चलता हूं, तो यह सब ठीक काम करता है।
इस मुद्दे को हल करने के तरीके पर कोई विचार?
स्टैकट्रेस:
mscorlib.dll!System.Reflection.RuntimeAssembly.GetExportedTypes() + 0x27 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerTypeCacheUtil.FilterTypesInAssemblies(System.Web.Http.Dispatcher.IBuildManager buildManager, System.Predicate<System.Type> predicate) + 0x104 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerTypeCacheUtil.GetFilteredTypesFromAssemblies(string cacheName, System.Predicate<System.Type> predicate, System.Web.Http.Dispatcher.IBuildManager buildManager) + 0x76 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache() + 0x58 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerTypeCache.HttpControllerTypeCache(System.Web.Http.HttpConfiguration configuration) + 0x96 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerFactory.DefaultHttpControllerFactory(System.Web.Http.HttpConfiguration configuration) + 0x96 bytes
System.Web.Http.dll!System.Web.Http.Services.DefaultServiceResolver..ctor.AnonymousMethod__0(System.Web.Http.HttpConfiguration config) + 0x30 bytes
System.Web.Http.dll!System.Web.Http.Services.DefaultServiceResolver.GetService(System.Type t) + 0x57 bytes
System.Web.Http.dll!System.Web.Http.Services.DependencyResolver.GetService(System.Type serviceType) + 0xd3 bytes
System.Web.Http.dll!System.Web.Http.DependencyResolverExtensions.GetService<System.Web.Http.Dispatcher.IHttpControllerFactory>(System.Web.Http.Services.DependencyResolver resolver) + 0x6a bytes
System.Web.Http.dll!System.Web.Http.DependencyResolverExtensions.GetServiceOrThrow<System.Web.Http.Dispatcher.IHttpControllerFactory>(System.Web.Http.Services.DependencyResolver resolver) + 0x5b bytes
System.Web.Http.dll!System.Web.Http.DependencyResolverExtensions.GetHttpControllerFactory(System.Web.Http.Services.DependencyResolver resolver) + 0x25 bytes
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerDispatcher.HttpControllerDispatcher(System.Web.Http.HttpConfiguration configuration) + 0x77 bytes
System.Web.Http.SelfHost.dll!System.Web.Http.SelfHost.HttpSelfHostServer.HttpSelfHostServer(System.Web.Http.SelfHost.HttpSelfHostConfiguration configuration) + 0x62 bytes
WebApi.Host.dll!My.WebApi.Host.Server.Listen() Line 33 + 0x1b bytes C#
Services.TrialBalance.TestHarness.exe!Digita.AccountsPro.Services.TrialBalance.TestHarness.Program.Main() Line 21 + 0xa bytes C#
[Native to Managed Transition]
[Managed to Native Transition]
mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args) + 0x6d bytes
Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x2a bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x63 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0xb0 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x2c bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes
[Native to Managed Transition]
स्टैक ट्रेस क्या है? – SLaks
अपडेट: मुझे कस्टम निर्भरता रिज़ॉल्यूवर बनाने की भी आवश्यकता नहीं है, बस 'var type = typeof (IDependencyResolver) कर रहा है;' इस त्रुटि को ट्रिगर करता है। – stusmith