2009-07-28 10 views
1

Ich habe einen HttpHandler geschrieben, der funktioniert, wenn ich es auf dem ASP.NET-Entwicklungsserver testen.HttpHandler Path Problem ASP.NET

In meiner Web.Config ich habe:

<add verb="*" path="Files.zip" type="MyNamespace.Zip, App_Code" /> 

Und in meinem Handler in meinem Ordner App_Code habe ich den Code unten. Leider, da der ASP.NET-Entwicklungsserver alles im Root ablegt - http://localhost:1234/Files.zip funktioniert ganz gut. Ich versuche jedoch, auf einem Intranet-Server bereitzustellen, wo die URL etwa http://myProjects/project ist. Wenn ich meinen Browser auf http://myProjects/project/Files.zip zeige, bekomme ich einen 404. Wie kann ich die Web-Konfiguration optimieren, um den richtigen Pfad zu bekommen? Oder ist die Lösung woanders? Ich habe bereits versucht, den Pfad mit "~ /" und "./" voranzutreiben.

(Namespace MyNamespace, file Zip.cs) 
public void ProcessRequest(HttpContext context) 
{ 
    context.Response.ContentType = "application/octet-stream"; 
    DirectoryInfo di = new DirectoryInfo(context.Server.MapPath("files")); 
    FileInfo[] fileinf = di.GetFiles(); 
    ZipFile zip = new ZipFile(); 
    foreach(FileInfo fi in fileinf) 
    { 
     zip.AddFile(fi.FullName, ""); 
    } 
    zip.Save(context.Response.OutputStream); 
} 
+0

IIS-Version auf Ihrem Deployment Server? –

Antwort

2

Haben Sie die Zuordnungen in IIS auf dem Intranet-Server, so dass die Anfragen eingerichtet * .zip durch die ASP.NET-Laufzeit verarbeitet werden? Wenn nicht, wird die Anfrage an files.zip niemals zu Ihrem Handler gelangen.

Wenn Sie auf IIS 6 sind, hilft Ihnen dieser Link beim Einrichten der Zuordnung von aspnet_isapi.dll zu Zip-Erweiterungen.

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/4c840252-fab7-427e-a197-7facb6649106.mspx?mfr=true

+0

Ich habe alle möglichen Wege ausprobiert, so scheint es, dass dies wahrscheinlich das Problem ist. Leider habe ich keine Privilegien, daher wird es schwer sein zu testen oder zu modifizieren. – Chet

+0

Wenn dein Herz nicht auf den Pfad mit der Endung .zip eingestellt ist, kannst du es einfach in FilesZip.aspx oder etwas ähnliches ändern. Viel Glück! – JamieGaines

1

Haben Sie versucht,

path="/project/Files.zip"