Asp.net web application fails to Access db after surfing for awhile

  • Thread starter Thread starter mark
  • Start date Start date
M

mark

Can't figure this one out. I appears to not be code related. After
surfing my asp.net web app for a while 5 - 10 min. it fails to open
any further connections to my access 2000 database. There seems to be
no set drop off point either that would point to a specific code
problem. I went through and made sure that I explicitly closed all my
connections when done and even called the dispose method after each
one. I noticed that asp.net puts a lock on the database file after
login, and also the size of the database itself grows from about 500k
to 2-3mb in size. Could this be a clue.
The site uses Forms authentication. I made sure that the aspnet
client has full permissions on the folder.
The database lock stays even after I close out of the site. When the
site stops connecting after surfing for a while, I upload my
web.config file again and that seems to reset everything for a while.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!-- Online connstring -->
<!--<add key="ConnectionString"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:\webs\baker101\netdata\TIMEX.mdb"/> -->
<!-- <add key="OrderConnectionString"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:\webs\baker101\netdata\bsxmloTest3.mdb"/>-->
<add key="ConnectionString"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c://webshare/wwwroot/timex/timex.mdb"/>
<add key="OrderConnectionString"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c://webshare/wwwroot/timex/bsxmloTest3.mdb"/>
<!-- offline connstring -->
</appSettings>
<system.web>

<!-- DYNAMIC DEBUG COMPILATION
Set compilation debug="true" to insert debugging symbols
(.pdb information)
into the compiled page. Because this creates a larger file
that executes
more slowly, you should set this value to true only when
debugging and to
false at all other times. For more information, refer to the
documentation about
debugging ASP.NET files.
-->
<compilation defaultLanguage="vb" debug="true" />

<!-- CUSTOM ERROR MESSAGES
Set customErrors mode="On" or "RemoteOnly" to enable custom
error messages, "Off" to disable.
Add <error> tags for each of the errors you want to handle.
-->
<customErrors mode="Off" />

<!-- AUTHENTICATION
This section sets the authentication policies of the
application. Possible modes are "Windows",
"Forms", "Passport" and "None"
-->
<authentication mode="Forms">
<forms name="IBuySpyStoreAuth" loginUrl="login.aspx"
protection="All" path="/" />
</authentication>


<!-- AUTHORIZATION
This section sets the authorization policies of the
application. You can allow or deny access
to application resources by user or role. Wildcards: "*"
mean everyone, "?" means anonymous
(unauthenticated) users.
-->
<authorization>
<allow users="*" /> <!-- Allow all users -->

<!-- <allow users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
<deny users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
-->
</authorization>

<!-- APPLICATION-LEVEL TRACE LOGGING
Application-level tracing enables trace log output for every
page within an application.
Set trace enabled="true" to enable application trace
logging. If pageOutput="true", the
trace information will be displayed at the bottom of each
page. Otherwise, you can view the
application trace log by browsing the "trace.axd" page from
your web application
root.
-->
<trace enabled="false" requestLimit="10" pageOutput="false"
traceMode="SortByTime" localOnly="true" />


<!-- SESSION STATE SETTINGS
By default ASP.NET uses cookies to identify which requests
belong to a particular session.
If cookies are not available, a session can be tracked by
adding a session identifier to the URL.
To disable cookies, set sessionState cookieless="true".
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user
id=sa;password="
cookieless="false"
timeout="20"
/>

<!-- GLOBALIZATION
This section sets the globalization settings of the
application.
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

</system.web>
<location path="ProductList.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="ProductDetails.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="ShoppingCart.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="OrderForm.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
<location path="Summary.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
 
Hi Mark,

I am dealing with the same issue in my company. My guess is that root
cause and problem statement should be around the web.config file.
Curious, which version of the framework are you using? My system is
W2K SP3, IIS 5, Framework 1.0 SP2.

The obvious thing I want to try but have not is to set in IIS the
Custom HTTP Header, cache-control, no-cache, for just the web.config
file.

--Keith
 
Keith,

I've since solved the problem. I think the root of the problem was I
was building the solution in debug mode and uploading this to my web
server. I read somewhere that this puts an excess load on the
application since it does alot of extra things in this mode. I also
made sure all my connections were being closed. I added a Finally to my
Try's and placed all my object cleanup in there(don't think this was the
problem though). Also in my web.config, set
<compilation defaultLanguage="vb" debug="false" /> this coincides with
build in release mode. When I uploaded this release version to the web
server, I noticed after surfing for awhile the db file size remained
small and there was no locking file showing up either(similar to my
classic asp sites).
 
Back
Top