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?
Hast du auch überprüft, ob die Datei in dem im Verweis angegebenen Pfad auch existiert?
Existiert im Skript die notwendige Using-Direktive?
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?
Befindet die DLL sich nicht im gleichen Verzeichnis dann gibt es 2 Möglichkeiten.
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?
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.
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.
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.
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).
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.
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?
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.
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
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.
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!