2012-03-26 8 views
5

मेरे पास एक एमईएफ एप्लीकेशन है जो स्थानीय रूप से चलाने पर बहुत अच्छा काम करता है, लेकिन जब नेटवर्क नेटवर्क पर दूरस्थ रूप से कॉल किया जाता है तो काम नहीं करता है।एमईएफ संरचना जब अनुप्रयोग एक नेटवर्क पर है शेयर

मैं यूएनसी मुद्दों से बचने के लिए असेंबली.लोड लोड से उपयोग कर रहा हूं, लेकिन देख रहा हूं क्योंकि सभी डीएल एक्सई के बगल में स्थित हैं, मुझे वास्तव में यह नहीं लगता कि यह समस्या होगी, लेकिन मैंने इसे किसी भी तरह से करने की कोशिश की।

मैंने msdn पर देखने के बाद, .NET 4 अनुमतियों के साथ एक सामान्य समस्या प्रतीत होती है, जो कॉन्फ़िगरेशन मैनेजर.गेटसेक्शन समस्याओं को भी ठीक करता है।

मैं कॉन्फ़िगरेशन फ़ाइल में <loadFromRemoteSources enabled="true"/> की अनुमति दे रहा हूं। तो मुझे यकीन नहीं है कि समस्या कहां हो सकती है।

संपादित करें: अपवाद में उत्पाद डिस्प्लेचर सूची में निश्चित है। मार्ग।

कोड कंटेनर और सूची की स्थापना:

var catalog = new AggregateCatalog(); 

var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 

foreach (string file in Directory.GetFiles(dir, "XXX*.dll")) 
{ 
    var assembly = Assembly.LoadFrom(file); 
    catalog.Catalogs.Add(new AssemblyCatalog(assembly)); 
} 

var container = new CompositionContainer(catalog); 
var batch = new CompositionBatch(); 
batch.AddPart(this); 
container.Compose(batch); 

आयात है (जो मैं कर रही जनता की कोशिश की है):

[ImportMany(typeof(IEntityTypeDispatcher))] 
private IEnumerable<IEntityTypeDispatcher> Dispatchers { get; set; } 

एक निर्यात का एक उदाहरण है:

[Export(typeof(IEntityTypeDispatcher))] 
internal class ContactDispatcher : EntityTypeDispatcher<Contact> 

मुझे प्राप्त अपवाद त्रुटि है:

The composition produced a single composition error. The root cause is provided below. Review the CompositionException.Errors property for more detailed information. 

1) Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. 

Resulting in: An exception occurred while trying to create an instance of type 'XXX.XXX.Dispatch.ProductDispatcher'. 

Resulting in: Cannot activate part 'XXX.XXX.Dispatch.ProductDispatcher'. 
Element: XXX.XXX.Dispatch.ProductDispatcher --> XXX.XXX.Dispatch.ProductDispatcher --> AssemblyCatalog (Assembly="XXX.XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null") 

Resulting in: Cannot get export 'XXX.XXX.Dispatch.ProductDispatcher (ContractName="XXX.XXX.Dispatch.IEntityTypeDispatcher")' from part 'XXX.XXX.Dispatch.ProductDispatcher'. 
Element: XXX.XXX.Dispatch.ProductDispatcher (ContractName="XXX.XXX.Dispatch.IEntityTypeDispatcher") --> XXX.XXX.Dispatch.ProductDispatcher --> AssemblyCatalog (Assembly="XXX.XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null") 

Resulting in: Cannot set import 'XXX.XXX.Dispatch.DispatcherRepository.Dispatchers (ContractName="XXX.XXX.Dispatch.IEntityTypeDispatcher")' on part 'XXX.XXX.Dispatch.DispatcherRepository'. 
Element: XXX.XXX.Dispatch.DispatcherRepository.Dispatchers (ContractName="XXX.XXX.Dispatch.IEntityTypeDispatcher") --> XXX.XXX.Dispatch.DispatcherRepository 
(System.ComponentModel.Composition.CompositionException) 

    at System.ComponentModel.Composition.CompositionResult.ThrowOnErrors(AtomicComposition atomicComposition) 
    at System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch batch) 
    at System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(CompositionBatch batch) 
    at XXX.XXX.Dispatch.DispatcherRepository.LoadDispatchers() in D:\Workspaces\XXX\Branches\Dev1\XXX.XXX\XXX.XXX\Dispatch\DispatcherRepository.cs:line 71 
    at XXX.XXX.Dispatch.DispatcherRepository.get_Instance() in D:\Workspaces\XXX\Branches\Dev1\XXX.XXX\XXX.XXX\Dispatch\DispatcherRepository.cs:line 34 
    at XXX.XXX.Dispatch.DispatcherRepository.GetDispatchers() in D:\Workspaces\XXX\Branches\Dev1\XXX.XXX\XXX.XXX\Dispatch\DispatcherRepository.cs:line 21 
    at XXX.XXX.Dispatch.Dispatcher.get_Instance() in D:\Workspaces\XXX\Branches\Dev1\XXX.XXX\XXX.XXX\Dispatch\Dispatcher.cs:line 30 
    at XXX.XXX.Broker..ctor() in D:\Workspaces\XXX\Branches\Dev1\XXX.XXX\XXX.XXX\Broker.cs:line 52 

ऐसा लगता है कि एमईएफ आंशिक ट्रस्ट परिदृश्यों में बहुत अच्छा काम नहीं करता है। क्या यह सुनिश्चित करने के लिए मुझे कुछ भी करने की ज़रूरत है कि सब कुछ पूर्ण विश्वास में चल रहा है?

+0

मैं अपनी परियोजनाओं के साथ एक ही समस्या थी, लेकिन मैं दुर्भाग्य से इस ठीक करने में सक्षम नहीं था। :( – eandersson

उत्तर

3

हालांकि आपने "दूरस्थ स्रोतों से लोड" सक्षम किया है, लेकिन ऐसा हो सकता है क्योंकि फ़ाइलों पर अभी भी प्रतिबंध हो सकते हैं।

एनटीएफएस वैकल्पिक डेटा स्ट्रीम (एडीएस) में फ़ाइल में मेटाडेटा लागू करने की क्षमता का समर्थन करता है। इसमें जोन जानकारी शामिल होगी (जैसे इंटरनेट जोन, आदि)।

यह आपके नेटवर्क-स्थित फ़ाइलों के साथ समस्याएं पैदा कर रहा है, उन्हें इंटरनेट क्षेत्र में वर्गीकृत किया जा सकता है, और इसलिए अभी भी संभावित रूप से अवरुद्ध हो रहे हैं।

इस लेख चेक बाहर और अगर यह आपके लिए यह समाधान हो जाएगा देखें: http://mikehadlow.blogspot.co.uk/2011/07/detecting-and-changing-files-internet.html

संबंधित मुद्दे