When setting up asp.net error handlers for things like 404 errors, it is more 'efficient' to do this in IIS, or handle it in the Global.asax Application_Error event? I know the latter will be called, and I want to log this information in a database, but should I then just return without any redirect and let IIS do the redirect, or would it be better to do a response.redirect inside application_error once we've logged it?
I have to handle error related to web application. I am not sure how its works. I am thinking that I will add an error page (error.aspx) and in global.asax ,application_onError, I will redirecting the user to error page and that should be enough ! i mean it will handle error automatically.
I want to capture errors on a per-page level. I've added the following code to my code behind page:
public void Page_Error(object sender, EventArgs e) { Response.Write("Unhandled error on the page."); }
I have also ensures that AutoEventWireup="true".
I have some gridviews on this webpage that use a SQLDataSource. I'm hoping to use this error message (which will be better when I get it working, response.write is mostly just to test) to cover up those errors with something more user friendly. Yet when I have an error ("Cannot open database" for instance), Page_Error never fires and I get the ugly yellow screen of death instead.
I am about to deploy an ASP .NET application (developed with LINQ-to-SQL). I have taken following precautions: Database access via user with limited access, however, since application is to access the sensitive data, I can't deprive this limited access user from it Database server is not exposed to external network - is hiding behind DMZ and all external ports are blocked I have done thorough security testing of the web-application; SQL Injections, rights management, illegal data access (via post/get data tempering) Application is operating on SSL
1 - I am using ASP .NET authorization API; any recommendation for avoiding session hijacking (in case someone some-how gets to know the session key). Is there are way to change the authentication cookie less prone to threats? Say like, changing it after every request? (I know I am get very conscious about this particular item)
2 - Data in the database is not encrypted. To make things ultra-secure, I am thinking about implementing transparent data encryption. Can someone share his/her experience or a link about implementing data level encryption with SQL Server 2008 along with pros-and-cons?
3 - Recommendation for storing connection string in web.config. Is using integrated security better then using encrypted database connection string?
If I pass in true to the ValidationSummary() helper so that it only displays model-level errors, how can I get the summary to display custom errors I add to ModelState?For instance, here is what I am after. I want my data annotation errors to display next to the textbox's using the ValidationMessage helper, but in my business layer I may throw an exception that I want to display in the validation summary.
I have a C# web forms ASP.NET 4.0 web application that uses Routing for URLs for some reason custom errors defined in the system.web section of my web.config is entirely ignored and it will fall back the IIS errors.
This gets entirely ignored
[code]....
This would be a minor inconvenience except that by the fact it falls back to IIS native instead of my application it completely circumvents Elmah logging my 404 exceptions correctly.
I am having an issue with caching of a web application while deployment to a webserver. the application require full trust level to be assigned but i am having partial trust level. How can i handle it. I am using Microsoft enterprise lib caching. site is displaying an error if FullTrust used nad for medium code doesn't work.
this is the error message on my website
"The current build operation (build key Build Key[Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter, null]) failed:
Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. (Strategy type Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfiguredObjectStrategy, index 2)"
I got these errors while trying to run a web application using vs 2008, The first error is this: >Application has generated an exception that could not be handled. >process ID=0x1130 (4400), Thread ID=0xe6c (3692). And when I press OK a second dialog reports this error:>unable to connect to the asp.net development server. I reinstalled, repaired and re registered msdbg2.dll and edited hosts file but still get this error. I need to debug an application but I can't. This error is on a 'Win 2003 server enrterprise service pack 1' with a vs2008 team system installation. What can I do to remove this error and run and debug my application?
We have an ASP.NET page which uses an update panel for partial page postbacks. On the server side, the postback performs some database work and updates several UI elements. The database code is all contained in several transactions, so the state will still be consistent if an exception is thrown. We're working on some error handling code now, and my first thought was to log the exception thrown, reload the last consistent UI state, and show some sort of modal popup or other ui element with a brief error message for the user (this is an intranet page, so we're automatically notified of the bug, and the users know where to find us.
I have an Application_Error handler in my Global.asax file. However, I load many pages using an XHR request and would rather these "sub pages" return javascript or a real 500 code for my main app to process, rather than an error page.
Is it possible to handle errors on certain pages in a different way? Can a master page handle its own errors in a page extending it without bubbling it up to Global.asax?
This morning I found myself dealing with A SQL POOLING ERROR Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. I did fix this with resetting my pooling and setting a pooling max =100 Anyway now Im starting to rethink how I open connections, dealing with errors and proper closing of connections Would you say this code below is a good way of opening, closing connections (even when errors occurred)
Dim Connection As SqlConnection Dim myConn As String = (ConfigurationManager.ConnectionStrings("MyConnString").ConnectionString) Connection = New SqlConnection(myConn) Try Dim DBCommand As SqlCommand Dim dt As New DataTable() Dim myDataSet As New DataSet Connection.Open() DBCommand = New SqlCommand("GetAllCategories_", Connection) DBCommand.CommandType = CommandType.StoredProcedure DBCommand.Parameters.Add("@HomePageID", SqlDbType.Int).Value = HiddenChosenVirtualMainID.Value Dim mySqlAdapter As New SqlDataAdapter(DBCommand) mySqlAdapter.Fill(dt) SecondLevelChildDatalist.DataSource = dt SecondLevelChildDatalist.DataBind() Catch ex As Exception 'Error goes here SqlConnection.ClearAllPools() Finally 'close the connction Connection.Close() Connection.Dispose() End Try
I really want to switch over to ajax, but i can't seem to get my error handlling perfect. If i can't handle errors correctly, I just can't use it. What I really want to happen is to do a full refresh of the Top Frame. How I normally do this is by a similar call to Response.Write(<script>top.location.href = ""</script>). I was currently doing this in Global.asax. This becomes a problem when I error out in an AJAX postback. I've also noticed that There is an AsycPostbackErrorHandler you can attach to the ScriptManager. This is all find an dandy, but it will still hit my Global.asax Application_Error Event.
I am honestly just not sure how to handle this.
As I said, the result I want is....To Reload the Top Frame with some Error Message...whether I have to do some weird redirection or whatever. My problem lies specifically with the Global.asax file.
On my site I put things in Web user controls. For example, I will have a NewsItem Control, an Article Control, a ContactForm control.These will appear in various places on my site.
What I'm looking for is a way for these controls to pass messages up to the Page that they exist on.
I don't want to tightly couple them, so I think I will have to do this with Events/Delegates. I'm a little unclear as to how I would implement this, though.
A couple of examples:
1: A contact form is submitted. After it's submitted, instead of replacing itself with a "Your mail has been sent" which limits the placement of that message, I'd like to just notify the page that the control is on with a Status message and perhaps a suggested behaviour. So, a message would include the text to render as well as an enum like DisplayAs.Popup or DisplayAs.Success
2: An Article Control queries the database for an Article object. Database returns an Exception. Custom Exception is passed to the page along with the DisplayAs.Error enum. The page handles this error and displays it wherever the errors go.
I'm trying to accomplish something similar to the ValidationSummary Control, except that I want the page to be able to display the messages as the enum feels fit.
Again, I don't want to tightly bind or rely a control existing on the Page. I want the controls to raise these events, but the page can ignore them if it wants.I'd love a code sample just to get me started.
I know this is a more involved question, so I'll wait longer before voting/choosing the answers.
I'm working on a functionality in my asp.net web site that enables the user to download some files as a zip file. I'm using the DotNetZip library to generate the zip file.
Now, if anything goes wrong, say the Utils.ExportToZip method fails, I want to present an error message to the user and not the download dialog. Do I have to remove some data from the Response object in order to cancel the download operation?
I am learning on how to create data access layer code for a web site. I want to ensure I am actually connecting to the datasource, so, I am wanting to use a try/catch block within my data access layer class methods. What I am not sure how to handle is a case where the connectionstate is not open. The method should ideally return a datatable. If an error is thrown would I just return an empty datatable? That is my first thought. My other thought is to return an object and pass a datatable if the connection succeeds or the exception if the connection fails.
There seems to be an issue with the "Trust" level when executing within a "Cloud" environment. In order for the following app to work it needs a trust level of at least "Medium." This web app is developed using VB.NET 3.5, and Visual Studio 2008. The app works perfectly on my local sever but when deployed/published to the "Cloud" it returns the error: System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. I have added all 4 required values, ConsumerKey, ConsumerSecret, OAuthToken, and OAuthTokenSecret to the web.config file in the "appSettings" section of the "configuration"
[Code]....
If found that by going to [URL] and signing into the account that is using the application, then go to the "Settings" page, go to the bottom of the page and click on the "API" menu option. Once the API page appears you will clik on the button "2", Register An App. On the right side on the new page, you will see a button "View Your Applications." If you have previously registered your app, click this button, If not fill out the appliction for a new app. Now at the View your Applications page, select the app you want to get the authorization keys for where is says "Edit Details". Now click on the button to the right that says, "Application Detail." Here you will find your Consumer Key and your Consumer Secret Key. On the right side of this page you will see the menu option "My Access Token", click it and you will find your oauth_token and your oauth_token_secret keys! Not that you have all the keys, put them in the "appSettings" section of the web.config file. Add "Dim twConn As New TwitterVB2.TwitterAPI" at the top of the page.
I then created a subroutine where I pass in the Tweet:
[Code]....
This code works great in an enviornment that allows at least a "Medium" trust level. However it appears that many of the "new" hosting envrionments such as "Cloud Hosting" and others do not allow this trust level automatically!However if the trust level is less than "Medium" on your host you will likely receive the error message: "Twitter Returned: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed." If anyone has found a fix for this "Trust Level"
When debugging my application, I m getting an application level error in global.asax file. The Server.GetLastError() reads "File does not exist." but thats it. No more details on the filename or the location where the code is trying to find a file. I commented out the application_error method, with a hope that the exception would be thrown when the debug the application, but no errors were thrown. How do i find the source of the error, cos I want to resolve this issue by either putting the file that the application is looking for or by completely removing the code that is referencing the file.
I know that ASP.NET MVC has error filter attribute to handle specified error type. However, this feature cannot catch any error that occurs when application start. Therefore, I need to add some code to "Application_Error" method for handling this error like the following code.
public void Application_Error(object sender, EventArgs e) {// At this point we have information about the error var ctx = HttpContext.Current; var exception = ctx.Server.GetLastError(); [code]...
My ISP recently has migrated my app to a new platform. The app has now to be parked in a root subfolder, say site1, rather than at the root.
The main page can still be accessed via [URL] is now located at /site1/default.aspx. Subfolder pages however cannot be accessed correctly anymore since the url includes now subfolder name "site1" ie
[URL]
instead of
[URL]
This of course breaks page referencing.
Despite multiple requests, I have not yet obtained an answer so far. Question: Is there a simple way to strip away string "site1" from the url, preferably at the web.config level? I know this can be done programmatically at the page level, to clean up page references (>30 pages). In addition, this could entail further compatibilty problems between the deployment version and the local development site.