2011-01-11 3 views
0

Ich habe einige seltsame Probleme.Code läuft in Root-Verzeichnis, aber nicht unter dir

Ich habe ein Stück Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="_Default" %> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <title>VERSIONS CHECK!!!</title> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
     <div> 
      <asp:Label ID="lblVersion" runat="server" /> 
     </div> 
     <br /> 
     <div> 
      <asp:Label ID="lblHelloWorld" runat="server" /> 
     </div> 
     <p> 
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> 
     </p> 
     </form> 
    </body> 
    </html> 

und die Code-Behind-Datei:

using System; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
{ 
    lblVersion.Text = System.Environment.Version.ToString(); 
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    if (lblHelloWorld.Text.Equals(string.Empty)) 
    { 
     lblHelloWorld.Text = "Hello World"; 
    } 
    else 
    { 
     lblHelloWorld.Text = ""; 
    } 
} 
} 

Dies funktioniert sowohl lokal, und in meinem public_html Ordner. Aber wenn ich dasselbe in Unterordner setze, wie public_html/folder1/folder2 kommt es mit einem Fehler.

Server Error in '/' Application. 
Runtime Error 
Description: An application error occurred on the server. The current custom error  settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off". 
<!-- Web.Config Configuration File --> 
<configuration> 
    <system.web> 
     <customErrors mode="Off"/> 
    </system.web> 
</configuration> 
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL. 
<!-- Web.Config Configuration File --> 
<configuration> 
    <system.web> 
     <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> 
    </system.web> 
</configuration> 

Im brandneu zu ASP.NET und Publishing mit Visual Studio - so stehen die Chancen, dass im falschen irgendwo etwas zu tun. Eigentlich ist dies mein erster Versuch, ASP.NET zu schreiben - also sei vorsichtig :)

Thx im Voraus.

Jack das ist, wie meine Config-Datei sieht jetzt:

Asp.Net Konfigurationsoption in Visual Studio. Eine vollständige Liste der Einstellungen und Kommentare können in der Regel in \ Windows \ Microsoft.Net \ Framework befindet sich in machine.config.comments finden \ Vx.x \ Config ->

<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    </compilation> 
    <authentication mode="Windows"/> 


<customErrors mode="Off" defaultRedirect="GenericErrorPage.htm"> 
<error statusCode="403" redirect="NoAccess.htm" /> 
<error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors> 
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> 
</system.web> 
</configuration> 

Und der Fehler, den ich jetzt bekomme, ist:

Server Fehler in '/' Anwendung. Konfigurationsfehler Beschreibung: Bei der Verarbeitung einer Konfigurationsdatei ist ein Fehler aufgetreten, der für die Bearbeitung dieser Anforderung erforderlich ist. Bitte lesen Sie die spezifischen Fehlerdetails unten und ändern Sie Ihre Konfigurationsdatei entsprechend.

Parser Fehlermeldung: Es ist ein Fehler, einen Abschnitt zu verwenden, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert wurde. Dieser Fehler kann durch ein virtuelles Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist.

Quellfehler:

Line 26:    ASP.NET to identify an incoming user. 
Line 27:   --> 
Line 28:  <authentication mode="Windows"/> 
Line 29: 
Line 30: 

Antwort

2

Haben Sie eine web.config Datei im Unterverzeichnis? Wenn ja, stellen Sie die authentication mode in diesem Unterverzeichnis web.config ein?

Sie können den Authentifizierungsmodus aus einem Unterverzeichnis gesetzt: ASP.NET Configuration File Hierarchy and Inheritance

+0

Mein Problem war, dass ich php benutze - also war das Problem, weil ich im Visual Studio den falschen Blickwinkel hatte. Ich muss das Visual Studio Projekt als Website sehen. Die Struktur im Visual Studio sieht ähnlich aus wie in meinem FTP. Ich hab es jetzt. Danke für die Führung in die richtige Richtung :) – fjappe

+0

Ich bin froh, dass ich helfen konnte! – zeroef

2

Nun, um herauszufinden, was Fehler, den Sie erhalten, müssen Sie customerrors auf „Aus“ in der Datei web.config zu sehen. Sie könnten es auf RemoteOnly setzen, aber ich glaube nicht, dass Sie es auf der tatsächlichen Server-Box anzeigen, also stellen Sie es auf aus.

<customErrors mode="Off" defaultRedirect="GenericErrorPage.htm"> 

</customErrors> 

Das wird Ihnen zeigen, welchen Fehler Sie erhalten.

+0

Ich habe die Post mit dem neuen Material bearbeitet. – fjappe

+0

Ich habe versucht, eine Subdomain auf meinem Webserver (online) zu erstellen und es hat mir ein neues Root-Verzeichnis, so dass ich jetzt public_html und folder1 im root meines Hotels habe. – fjappe

+0

...und du hast richtig geraten, ich bin auch neu zu stackoverflow, drücke die Eingabetaste, während du diesen Kommentar schreibst. – fjappe

Verwandte Themen