Note: Additional ASP.NET information is located in ASP.NET Extension Information.
General FAQs
Q: Why do I not see detailed error messages when I have an error in my ASP.NET page? I only see information about a generic runtime error like the following:
Server Error in '/appname' 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.
Details: To enable the details of this specific error message to be viewable on the local server machine, 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 "RemoteOnly". To enable the details to be viewable on remote machines, please set "mode" to "Off".
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.
A: By default, ASP.NET applications are configured with custom error messages turned off. However, some web development tools, such as Visual Studio.NET, will create a web.config file with the customErrors mode set to "RemoteOnly". In order to enable detailed error messages, you need to make sure that you either remove the customErrors section in your web.config file or that you set the mode attribute in the customErrors section to "Off" in your site's web.config file.
<customErrors mode="off"/>
Be aware that when you set the customErrors mode to "Off" all visitors of your web site will see the detailed error message.
Note that due to the nature of the shared hosting platform the "RemoteOnly" and "On" modes of the customErrors section are equivalent since every visitor to your web site is browsing remotely.
_______________________________
Q: Why do I receive an error like the following when I attempt to browse my ASP.NET page?
Server Error in '/appname' Application. --------------------------------------------------- Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineOnly' beyond machine.config.
A: You may have defined a section in your application's web.config file that is not configurable on our shared web hosting platform. Remove or comment out any configuration sections from your web.config file that are not supported. See Supported Configuration Options for more information.
___________________________
Q. Which ASP.NET configuration options are supported in the ASP.NET implementation on the shared web hosting platform?
A: Many of the ASP.NET configuration options are not configurable at the site, application or subdirectory level on the shared hosting platform. Certain options can affect the security, performance and stability of the server and, therefore cannot be changed. The following settings are the only ones that can be changed in your site's web.config file(s):
Q: How do I send an email message from my ASP.NET page?
A: You can use the System.Web.Mail.MailMessage and the System.Web.Mail.SmtpMail class to send email in your ASPX pages. Below is a simple example of using this class to send mail in C# and VB.NET. In order to send mail through our mail server, you would want to make sure to set the static SmtpServer property of the SmtpMail class to mail-fwd.
</script> <body> <form id="mail_test" method="post" runat="server"> </form> </body> </HTML> VB.NET <%@ Import Namespace="System" %> <%@ Import Namespace="System.Web" %> <%@ Import Namespace="System.Web.Mail" %> <HTML> <HEAD> <title>Mail Test</title> </HEAD> <script language="VB" runat="server"> Sub Page_Load(sender As Object, E as EventArgs) Try Dim Mailer As MailMessage Mailer = New MailMessage() Mailer.From = "sales@joeswidgets.com" Mailer.To = "ringleader@forexample-domain.com" Mailer.Subject = "Your Widget Order" Mailer.Body = "Your order was processed." Mailer.BodyFormat = MailFormat.Text SmtpMail.SmtpServer = "mail-fwd" SmtpMail.Send(Mailer) Response.Write("Mail sent successfully") Catch ex As Exception Response.Write("Your message was not sent: " + ex.Message) End Try End Sub </script> <body> <form id="mail_test" method="post" runat="server"> </form> </body> </HTML>
___________________________
Q: How do I upload a file from my ASP.NET page?
A: In order to perform file upload in your ASP.NET page, you will need to use two classes: the System.Web.UI.HtmlControls.HtmlInputFile class and the System.Web.HttpPostedFile class. The HtmlInputFile class represents and HTML input control that the user will use on the client side to select a file to upload. The HttpPostedFile class represents the uploaded file and is obtained from the PostedFile property of the HtmlInputFile class. In order to use the HtmlInputFile control, you need to add the enctype attribute to your form tag as follows:
Also, remember that the /data directory is the only directory with Write permissions enabled for the anonymous user. Therefore, you will need to make sure that the your code uploads the file to the /data directory or one of its subdirectories.
Below is a simple example of how to upload a file via an ASP.NET page in C# and VB.NET.
<%@ Import Namespace="System" %> <%@ Import Namespace="System.Web" %> <%@ Import Namespace="System.Web.UI.HtmlControls" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Drawing" %> <HTML> <HEAD> <title>upload</title> </HEAD> <script language="VB" runat="server"> Sub UploadFile(sender as Object, e as EventArgs) If Not (loFile.PostedFile Is Nothing) Then Try Dim strFileName, strFileNamePath, strFileFolder As String
lblFileName.Text = strFileName lblFileLength.Text = loFile.PostedFile.ContentLength.ToString() lblFileType.Text = loFile.PostedFile.ContentType pnStatus.Visible = True Catch ex As Exception Dim lblError As Label lblError = New Label() lblError.ForeColor = Color.Red lblError.Text = "Exception occurred: " + ex.Message lblError.Visible = True Page.Controls.Add(lblError) End Try End If End Sub </script> <body MS_POSITIONING="FlowLayout"> <form id="upload" method="post" encType="multipart/form-data" runat="server"> <P><INPUT id="loFile" type="file" name="loFile" runat="server"> </P> <P><asp:button id="btnUpload" onclick="UploadFile" runat="server" Text=" Upload "></asp:button></P> <P><asp:panel id="pnStatus" runat="server" Visible="False"> <asp:Label id="lblFileName" Runat="server" Font-Bold="True"></asp:Label> uploaded<BR> <asp:Label id="lblFileLength" Runat="server"></asp:Label>bytes<BR> <asp:Label id="lblFileType" Runat="server"></asp:Label></asp:panel></P> </form> </body> </HTML>
Business Objects-related FAQs
Q: To which directory are business objects (compliled DLLs) uploaded?
A: Each ASP.NET application(web sites are now referred to as applications - child webs, etc....) is automatically configured to look in the \bin subdirectory, located immediately under your application root, for the required .NET assemblies. By default, the root of your site is an application. Remember, using certain tools such as Visual Interdev or Visual Studio.NET, you can create more than one application on your site. Each application would need its own \bin directory. If you are using Visual Studio.NET, your application (and its \bin directory) will be created automatically when you create a new web project in a subdirectory of your site.
Q: Are these business objects compiled?
A: The simple answer is on the client side. If you are using VB.NET and VisualInterdev, the objects are compiled and uploaded automatically. These processes are transparent to the user. If a command line compiler is used, then the client must upload the object to the /bin directory of the root application or application subdirectory.
Q: Is there any change to the global.asax file?
A: No, it is the same as the global.asa found today. .NET does, however, introduce a new file called "web.config" to set parameters for your site.