2009-08-19 3 views
1

Ich habe die Zeilen der Datei web.config hinzugefügt, um HTML-Dateien zu erstellen, die von der Seitenhandhabung verarbeitet werden - aber es funktioniert nicht, wenn ich die Website auf einem Live-Webhost veröffentliche. Es funktioniert auf meiner Entwicklungs-Box (nicht mit IIS), aber ich habe keine anderen Optionen in meinem Leben, um etwas hinzuzufügen ... Es ist eine Shared-Hosting-Umgebung.ASP.NET PageHandlerFactory (.html-Dateien)

Was soll ich versuchen? Ich bekomme keine Fehler, deshalb weiß ich, dass es nicht an der root web.config Überschreibung liegen kann.

  <compilation debug="true"> 
     <assemblies> 
      <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 
     <buildProviders> 
      <add extension=".html" type="System.Web.Compilation.PageBuildProvider" /> 
     </buildProviders> 
    </compilation> 

     <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory" /> 

dann in der HTML-Seite ...

<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %> 

... <% Response.Write ("Testing. Dies ist Inhalt von ASP.NET geschrieben. "); %>

+1

können Sie die Linien zeigen Ihnen hinzugefügt und sorgfältig ausarbeiten, was Sie meinen „nicht funktioniert "? – BlackTigerX

+0

Informationen angefordert unten aufgeführt. – Ciel

+1

Hinzugefügt zur ursprünglichen Frage. Verzeih mir, ein wenig neu zu Stackoverflow im Allgemeinen. – Ciel

Antwort

1

Das wahrscheinlichste Problem ist, dass IIS nicht für das Weiterleiten von Anforderungen für HTML-Dateien über ASP.NET konfiguriert ist.

Überprüfen Sie die IIS-Eigenschaften Ihrer Website, Registerkarte "Basisverzeichnis", Schaltfläche "Konfiguration", Registerkarte "Zuordnungen".

Oben sehen Sie eine Liste der Dateierweiterungen und was der Handler für diese Erweiterung ist. Alles, was nicht in dieser Liste enthalten ist, wird nur als flache Datei bereitgestellt, die bei hoher Auslastung effizienter ist, als die ASP.NET-Umgebung zu laden, um dann nur eine Datei in die Antwort zu schreiben.

So ist die Lösung im Grunde nur .html/.htm zu der Liste hinzuzufügen, und kopieren Sie die Einstellungen von einem der anderen diejenigen wie ASPX

Der Grund, warum ich diese auf Ihrer Entwicklungsmaschine gearbeitet vermuten ist, dass Sie haben die Website vom Debugger und nicht über IIS ausgeführt. Der Debugger verarbeitet alle Anfragen und nicht die kompliziertere Handhabung von IIS.

Beachten Sie, dass das alles ist, IIS 6 und folgenden Informationen - Dinge, die ein bisschen anders sind, wenn Sie auf IIS 7.

+0

Ich kann nicht auf diese Art von Sache zugreifen. Es ist eine Shared-Hosting-Umgebung. – Ciel

+0

oooh .... das könnte dann ein Problem für dich sein – Clyde

+0

Müssen deine URLs * * sein? Können sie etwas seltsam wie .axd sein? – Clyde