Laden...

Nach Verweis entsteht Fehler... aber warum?

Erstellt von digi333 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.822 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren
Nach Verweis entsteht Fehler... aber warum?

Ich habe ein Projekt mit Silverlight und ASP.NET. Das Silverlightprojekt startet ein ASP.NET-Service... Auf dem soll aus einem Projekt eine DLL ausgeführt werden. Deswegen habe ich einen Verweis eingefügt. Sobald der Verweis existiert, kommt auf der Webseite der Fehler "Das angegebene Modul wurde nicht gefunden".

Was mache ich falsch?

X
5 Beiträge seit 2009
vor 14 Jahren

Hast du auch überprüft, ob die Datei in dem im Verweis angegebenen Pfad auch existiert?
Existiert im Skript die notwendige Using-Direktive?

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Ich mach es wie immer (also wie bei meinen Offline-Projekten). Wenn ich es ausführe steht jedoch die benötigte DLL nicht im "Bin"-Ordner. Bei meinen Offline-Projekten erzeugt er aus dem Verweis eine DLL und kopiert sie sofort in den Bin-Ordner.

Was muss ich machen?

X
5 Beiträge seit 2009
vor 14 Jahren

Befindet die DLL sich nicht im gleichen Verzeichnis dann gibt es 2 Möglichkeiten.

  1. Du kopierst sie manuell hinein.
  2. Du packst sie in den GAC (Global Assembly Cache) Dies erreichst du mit dem Befehl gacutil -i MyDLL.dll
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Jetzt ist sie drinne und er sucht immer irgendeine Datei...


 Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)
Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.IO.FileNotFoundException: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)

Quellfehler:

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.

Stapelüberwachung:

[FileNotFoundException: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)]
   System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
   System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +43
   System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +127
   System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +142
   System.Reflection.Assembly.Load(String assemblyString) +28
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46

[ConfigurationErrorsException: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +613
   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +203
   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +105
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178
   System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) +163
   System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) +53
   System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) +175
   System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +83
   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +261
   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101
   System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +126
   System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +62
   System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33
   System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40
   System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +160
   System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +93
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Er bekommt ein Verweis... die eine DLL erzeugt. Und ohne dass ich die Bibliothek verwende, kommt der Fehler. Warum kann der Kompiler nicht sagen was er will?

X
5 Beiträge seit 2009
vor 14 Jahren

Wo zeigt denn der Verweis hin?
Hab bei mir grad Testweise 2 Projekte erstellt, beide in eine Projektmappe aufgenommen und nen Verweis eingebaut, der zeigt auf einen festen Speicherort, nämlich wo die Datei liegt. (In meinem Falle liegt die dll angeblich in \obj\Debug\ was aber daran liegt das ich die Konfigurationseinstellungen auf Default noch habe). Schau dir den Pfad mal an und stell sicher das deine Referenz auch dort hin zeigt.

Alternativ kannst du den Verweis nochmal entfernen und neu Hinzufügen, diesmal aber nicht über Projekte sondern über Durchsuchen. Danach sollte es eigentlich funktionieren.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Du hast recht... wenn ich ein Dummy-Projekt einbinde, funktioniert es. Bei meinem Offline Projekt meckert er aber. Ich hab geschaut, dass er alles bekommt was er sonst auch brauchen würde, jedoch zeigt er keine Fehler an und sagt auch nicht was ihm fehlt. Alles in allem ist es bisher eine Krankheit.

6.862 Beiträge seit 2003
vor 14 Jahren

Einmal das Thema reicht!

Ich verschieb das Thema aber mal in Webtechnologien, da der Fehler sich ja auf ASP.NET Seite befindet und nicht auf Silverlight Seite.

Befindet sich die verwendete DLL denn auch auf dem Server der die Webseite anbieten soll?

Baka wa shinanakya naoranai.

Mein XING Profil.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Die Dateien sind im Bin-Ordner. Der Fehler taucht immer auf, wenn ich ein Projekt einbinde, dass ein anderes C++-Ptojekt (FFMPEG: Videodecoder-Projekt) verwendet. Wenn ich ein Video hochlade und anschließend auf dem Server damit irgendwie arbeiten will, brauch ich dieses Projekt/DLL (also da komm ich nicht daran vorbei).

Aber wie gesagt, kommt dann gar keine Seite zustande (siehe Fehler).

6.862 Beiträge seit 2003
vor 14 Jahren

Wenn des nen C++ Projekt ist, wirst du ja den passenden Wrapper einbinden. Den meinst du wenn du sagst das die Datei im bin Ordner ist oder?

Ist denn aber auch FFMPEG auf dem Server vorhanden?

Baka wa shinanakya naoranai.

Mein XING Profil.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Ja... alles drauf und eingebunden. Nach dem kompilieren sind die Dateien schön im Ordner und es kommt kein Fehler vom Compiler. Die Seite startet im Debug-Modus und schwupp ist die Fehlermeldung da. Wie bekommt man den raus, wo es hakt, wenn der Compiler nicht meckert?

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Damit ihr wisst wo mein Problem ist, hab ich einfach mal ein Beispiel hochgeladen. Wenn ihr im Projekt die beiden FFMPEG-Verweise entfernt, funktionert es. Mit den Verweisen kommt die besagte Fehlermeldung, dass das Modul nicht gefunden wurde.

Projekt: Link

X
5 Beiträge seit 2009
vor 14 Jahren

Hi,

hab den Code mal überflogen, kann aber auf den ersten Blick nichts erkennen.
Ich müsste das Fragment normalerweise im Debugger mir anschauen, da es sich aber um ne Library handelt geht dies nicht.

Starte dein Projekt mal im Debugger und schau an welcher Stelle er auf die Nase fällt, danach erstellst du dir ein paar Zeilen drüber einen Breakpoint und Debuggst nochmal bis dort hin und schaust dann, was in den Inhalten drin steht (Pfadangaben etc.).
Es kann nur so sein, das entweder der Pfad nicht stimmt oder die Datei wirklich nicht vorhanden ist.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Danke erstmal dafür. Ich bekomme aber nirgendwo einen Haltepunkt im Debugger. Ich bin so verzeifelt, dass ich sogar den kompletten Code schicke (so wie er vor meiner Nase liegt). Ich möchte unbedingt wissen was anders ist.

Link mit meinem Originaltext: Link (ca. 30 MB)

Bitte bitte helft mir! Danke

6.862 Beiträge seit 2003
vor 14 Jahren

Dein FFMPEGBackend ist ja nur nen Wrapper um die ganzen unmanaged DLLs. Sind diese auf dem Server in einem Pfad vorhanden wo das System standardmäßig nach sucht?

Baka wa shinanakya naoranai.

Mein XING Profil.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Der Serevr ist mein Rechner im Debug-Modus. Wo würde er den standardmässig suchen (ich dachte im Bin-Ordner). Da es bei anderen Dummy-Projekten funktioniert, würde ich dabei den Pfad etwas ausschließen. Ich bin zu doof den Unterschied zu erkennen, deswegen hab ich mein mir vorliegendes Projekt mitgeschickt und wäre für die Lösung sehr dankbar.

Variante 1: Projekt ohne Verweise (CommonLib, FFMPEGDECODER, FFMPEGBackEnd) starten -> Seite funktioniert!

Variante 2: Erzeuge ein Dummy-Projekt und verweise darauf -> Seite funktioniert!

Variante 3: Verweise in ein WinForm-Projekt einfügen und kompileren -> WinForm.exe funktioniert!

Variante 4: Verweise in ASP-Projekt einbinden -> Seite meldet fehlendes Modul!

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 14 Jahren

Hat sich jemand schon das komplette Projekt mal angeschaut. WEnn ja würde ich gerne mal Feedback von euch haben wollen.

Link: Projekt