2010-04-05 5 views
2

Il est assez difficile d'afficher du code pour ASP.NET ici, donc je vais essayer de mon mieux de décrire mon problème.Page Web ASP.NET non disponible

J'ai un FileUploadControl et un bouton qui appelle une fonction quand on clique dessus. Il semble que la fonction Button fonctionne quand il n'y a rien choisi pour mon FileUploadControl. Cependant, quand il y a quelque chose de choisi dans FileUploadControl (j'ai sélectionné un fichier à télécharger), il y a un problème quand je clique sur le bouton. Cela n'a pas d'importance ce que fait la fonction (il suffit d'écrire sur une étiquette, même si cela n'a rien à voir avec FileUploadControl). L'erreur que je reçois est:

Cette page Web n'est pas disponible.

La page Web au http://localhost:2134/UploadMedia/Default.aspx est peut-être temporairement indisponible ou a peut-être été déplacée définitivement vers une nouvelle adresse Web.

J'ai cherché sur Google, et les gens semblent avoir eu des problèmes avec cela, mais des causes différentes de moi. Ils ont dit que leur port ASP.NET Development Server est différent de leur port dans la barre d'adresse. Ce n'est pas le cas pour moi.

En outre, un autre problème que les gens ont eu est avec Use Dynamic Ports. J'ai essayé les deux true et false. J'ai également essayé différents ports, et j'ai toujours eu la même erreur.

Cela me rend vraiment fou parce que peu importe le code de la fonction buttonFunction, cela ne fonctionne pas tant qu'il y a quelque chose dans le fichier FileUploadControl. S'il n'y a rien, cela semble fonctionner correctement.

Voici le code pour les contrôles ASP.NET:

<asp:FileUpload id="FileUploadControl" runat="server" /> 
<asp:Button runat="server" id="UploadButton" text="Upload" OnClick="uploadClicked" /> 
<br /><br /> 
<asp:Label runat="server" id="StatusLabel" text="Upload status: " /> 

Et ceci est le code de la fonction du bouton:

protected void uploadClicked(object sender, EventArgs e) 
{ 
    if (FileUploadControl.HasFile) 
    { 
     string filename = Path.GetFileName(FileUploadControl.FileName); 

     //Check if the entered username already exists in the database. 
     String sqlDupStmt = "Select songPath from Songs where songPath ='" + Server.MapPath("~/Uploads/") + filename + "'"; 
     SqlConnection sqlDupConn = new SqlConnection(@"Data Source = .\SQLEXPRESS; AttachDbFilename = |DataDirectory|\Database.mdf; Integrated Security = True; User Instance = True;"); 
     SqlCommand sqlDupCmd = new SqlCommand(sqlDupStmt, sqlDupConn); 
     sqlDupCmd.Connection.Open(); 
     SqlDataReader sqlDupReader = sqlDupCmd.ExecuteReader(CommandBehavior.CloseConnection); 

     if (sqlDupReader.Read()) 
     { 
      StatusLabel.Text = "Upload status: The file already exists."; 
      sqlDupReader.Close(); 
     } 

     else 
     { 
      sqlDupReader.Close(); 

      //See "How To Use DPAPI (Machine Store) from ASP.NET" for information about securely storing connection strings. 
      String sqlStmt = "Insert into Songs values (@songpath);"; 
      SqlConnection sqlConn = new SqlConnection(@"Data Source = .\SQLEXPRESS; AttachDbFilename = |DataDirectory|\Database.mdf; Integrated Security = True; User Instance = True; uid=sa; pwd=password;"); 
      SqlCommand cmd = new SqlCommand(sqlStmt, sqlConn); 
      SqlParameter sqlParam = null; 

      //Usage of Sql parameters also helps avoid SQL Injection attacks. 
      sqlParam = cmd.Parameters.Add("@userName", SqlDbType.VarChar, 150); 
      sqlParam.Value = Server.MapPath("~/Uploads/") + filename; 

      //Attempt to add the song to the database. 
      try 
      { 
       sqlConn.Open(); 
       cmd.ExecuteNonQuery(); 
       FileUploadControl.SaveAs(Server.MapPath("~/Uploads/") + filename); 
       songList.Items.Add(filename); 
       StatusLabel.Text = "Upload status: File uploaded!"; 
      } 

      catch (Exception ex) 
      { 
       StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message; 
      } 

      finally 
      { 
       sqlConn.Close(); 
      } 
     } 
    } 
} 

Mais cette buttonfunction fournit les mêmes résultats:

protected void uploadClicked(object sender, EventArgs e) 
{ 
    StatusLabel.Text = "FooBar"; 
} 

Quelqu'un a-t-il déjà eu ce problème ou pourrait-il en connaître la cause?

Merci!

Répondre

4

Mon ami m'a aidé à comprendre. C'était parce qu'ASP.NET permettait seulement des téléchargements de tailles de 4MB. J'ai dû aller dans le web.config ou le fichier machine.config et changer la valeur de MaxRequestLength pour être plus grand que 4096. Ceci l'a résolu.

+0

Je ne sais pas vraiment pourquoi il me donne juste une erreur de page Web indisponible au lieu de me dire qu'il y avait quelque chose de mal. – hahuang65

Questions connexes