ASP.NET Zone

Die ASP.NET Community. Alle Antworten rund um Microsoft® Webtechnologien
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe | Impressum | ASP.NET Zone Suchplugin

Home Blogs Foren FAQ Communities Fotos Downloads
Werbeanzeige

Virtual Path Provider

  •  02-05-2012, 18:39

    Virtual Path Provider

    Guten Abend zusammen,

    leider hab ich mich mit diesem Projekt wohl übernommen und bin auf eure Hilfe angewiesen.

    Was ich realisieren möchte:
    Ich arbeite an einem kleinen CMS und möchte die ASPX-Dateien in einer Datenbank ablegen (derzeit MYSQL).
    Ich verwende hierfür einen VirtualPathProvider.

    Derzeitiges Problem:
    Leider funktioniert mein VirtualPathProvider nur, wenn der Pfad, von welchem die Datei scheinbar kommt, auch vorhanden ist.
    z.B. /PhysDir/VirtualSite.aspx

    Sobald ich aber einen Pfad verwende, welcher Verzeichnisse beinhaltet, die nicht vorhanden sind, wie z.B. /VirtualPath/VirtualSite.aspx, so bekomme ich folgende Fehlermeldung:

    Verzeichnis C:\ASPWebsite\VirtualPath existiert nicht. Das Überwachen der Dateiänderungen konnte nicht gestartet werden.

    [code]
    [HttpException (0x80070002): Verzeichnis C:\ASPWebsite\VirtualPath existiert nicht. Das Überwachen der Dateiänderungen konnte nicht gestartet werden.]
       System.Web.FileChangesMonitor.FindDirectoryMonitor(String dir, Boolean addIfNotFound, Boolean throwOnError) +352
       System.Web.FileChangesMonitor.StartMonitoringPath(String alias, FileChangeEventHandler callback, FileAttributesData& fad) +832
       System.Web.Caching.CacheDependency.Init(Boolean isPublic, String[] filenamesArg, String[] cachekeysArg, CacheDependency dependency, DateTime utcStart) +2475
       System.Web.Hosting.MapPathBasedVirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart) +405
       System.Web.Hosting.VirtualPathProvider.GetCacheDependency(String virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart) +40
       System.Web.Hosting.VirtualPathProvider.GetCacheDependency(VirtualPath virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart) +39
       System.Web.Compilation.MemoryBuildResultCache.CacheBuildResult(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart) +83
       System.Web.Compilation.BuildManager.CacheBuildResultInternal(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart) +79
       System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +9085035
       System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +320
       System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +111
       System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +125
       System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +52
       System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +31
       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) +167
       System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

    [/code]

    Nach langem Try & Fail konnte ich das auf eine fehlerhafte Implementierung meiner VirtualDirectory Klasse zurückführen.

    In den Beispielen auf MSDN wird dieses VirtualDirectory mit allen Inhalten aus einer XML Datei gefüttert, aber ich kann ja schlecht sämtliche ASPX-Seiten, die in diesem Verzeichnis liegen, auch ins Virtual Directory laden?

    Hat hierzu jemand eine Idee?
    Ich bin für jede Hilfe dankbar!

    MfG Hege
Das ganze Thema ansehen
Powered by Community Server (Commercial Edition)