Asp.net runtime error - multiple users with Access Db

Discussion in 'ASP .Net' started by mark, Oct 20, 2003.

  1. mark

    mark Guest

    I have an asp.net ecommerce web application on a remote web server.
    I'm using an Access database on the back end. I've notice a few
    strange things. When I mimic an multiple user environment by surfin
    it in multiple browsers simultaneously the site generates a generic
    runtime error after awhile. I'm thinking this has something to do
    with my access database and multiple connections. I'm using forms
    authentication with a login page. Is there something else I should be
    specifing in my connection to promote the use of multiple users. I've
    had no problem in the past with access and asp 3.0 ecommerce sites.
    I've also noticed that access makes the lock file for the database.
    Could this be a problem. I've never noticed this with my asp 3.0
    databases. When I put custom errors = Off to show the error it goes
    back to a database.Open command in one of my class files, not always
    the same one though.
    Also a problem with the lock, can't ftp an updated database until the
    lock is gone. Very annoying. Any help will be greatly appreciated.
    Thanks.


    <?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>
    mark, Oct 20, 2003
    #1
    1. Advertising

  2. This is a common problem with Access databases in web applications. It was
    also common in ASP 3.0, but perhaps not as noticeable due to the nature of
    COM.

    Some advice:
    1. Close all connections
    2. Dispose all objects with a Dispose() method

    Access is not a good eCommerce database, or a web database. It is often
    used, as it is easy to implement and cheap to deploy, but it has too many
    problems from an Enterprise app perspective.

    --
    Gregory A. Beamer
    MVP; MCP: +I, SE, SD, DBA

    **********************************************************************
    Think Outside the Box!
    **********************************************************************
    "mark" <> wrote in message
    news:...
    > I have an asp.net ecommerce web application on a remote web server.
    > I'm using an Access database on the back end. I've notice a few
    > strange things. When I mimic an multiple user environment by surfin
    > it in multiple browsers simultaneously the site generates a generic
    > runtime error after awhile. I'm thinking this has something to do
    > with my access database and multiple connections. I'm using forms
    > authentication with a login page. Is there something else I should be
    > specifing in my connection to promote the use of multiple users. I've
    > had no problem in the past with access and asp 3.0 ecommerce sites.
    > I've also noticed that access makes the lock file for the database.
    > Could this be a problem. I've never noticed this with my asp 3.0
    > databases. When I put custom errors = Off to show the error it goes
    > back to a database.Open command in one of my class files, not always
    > the same one though.
    > Also a problem with the lock, can't ftp an updated database until the
    > lock is gone. Very annoying. Any help will be greatly appreciated.
    > Thanks.
    >
    >
    > <?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>
    Cowboy \(Gregory A. Beamer\), Oct 20, 2003
    #2
    1. Advertising

  3. mark

    mark Guest

    I forgot to mention that when this error occurs, it brings down the
    entire site for all other users as well. I recopy my web.config file
    to the web server and this clears the error. I've noticed also that
    the size of the database grows substantially after I login and begin
    to surf around(500k to 2.5mb). I will go back again to make sure
    everything is closed and disposed. Could there be a problem with the
    garbage collection not being called enough?



    "Cowboy \(Gregory A. Beamer\)" <> wrote in message news:<>...
    > This is a common problem with Access databases in web applications. It was
    > also common in ASP 3.0, but perhaps not as noticeable due to the nature of
    > COM.
    >
    > Some advice:
    > 1. Close all connections
    > 2. Dispose all objects with a Dispose() method
    >
    > Access is not a good eCommerce database, or a web database. It is often
    > used, as it is easy to implement and cheap to deploy, but it has too many
    > problems from an Enterprise app perspective.
    >
    > --
    > Gregory A. Beamer
    > MVP; MCP: +I, SE, SD, DBA
    >
    > **********************************************************************
    > Think Outside the Box!
    > **********************************************************************
    > "mark" <> wrote in message
    > news:...
    > > I have an asp.net ecommerce web application on a remote web server.
    > > I'm using an Access database on the back end. I've notice a few
    > > strange things. When I mimic an multiple user environment by surfin
    > > it in multiple browsers simultaneously the site generates a generic
    > > runtime error after awhile. I'm thinking this has something to do
    > > with my access database and multiple connections. I'm using forms
    > > authentication with a login page. Is there something else I should be
    > > specifing in my connection to promote the use of multiple users. I've
    > > had no problem in the past with access and asp 3.0 ecommerce sites.
    > > I've also noticed that access makes the lock file for the database.
    > > Could this be a problem. I've never noticed this with my asp 3.0
    > > databases. When I put custom errors = Off to show the error it goes
    > > back to a database.Open command in one of my class files, not always
    > > the same one though.
    > > Also a problem with the lock, can't ftp an updated database until the
    > > lock is gone. Very annoying. Any help will be greatly appreciated.
    > > Thanks.
    > >
    > >
    > > <?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>
    mark, Oct 21, 2003
    #3
  4. Call Dispose() on every object that has a Dispose() method. DO not try to
    control GC yourself, unless you are planning on taking over GC completely.
    (NOT a good idea)

    It is normal for the ASPNET worker process to lock up when there is an issue
    with database, so other users locking is common. When you recopy the
    web.config, you force the application to reset, as .NET resets when there
    are config changes.


    --
    Gregory A. Beamer
    MVP; MCP: +I, SE, SD, DBA

    **********************************************************************
    Think Outside the Box!
    **********************************************************************
    "mark" <> wrote in message
    news:...
    > I forgot to mention that when this error occurs, it brings down the
    > entire site for all other users as well. I recopy my web.config file
    > to the web server and this clears the error. I've noticed also that
    > the size of the database grows substantially after I login and begin
    > to surf around(500k to 2.5mb). I will go back again to make sure
    > everything is closed and disposed. Could there be a problem with the
    > garbage collection not being called enough?
    >
    >
    >
    > "Cowboy \(Gregory A. Beamer\)" <> wrote

    in message news:<>...
    > > This is a common problem with Access databases in web applications. It

    was
    > > also common in ASP 3.0, but perhaps not as noticeable due to the nature

    of
    > > COM.
    > >
    > > Some advice:
    > > 1. Close all connections
    > > 2. Dispose all objects with a Dispose() method
    > >
    > > Access is not a good eCommerce database, or a web database. It is often
    > > used, as it is easy to implement and cheap to deploy, but it has too

    many
    > > problems from an Enterprise app perspective.
    > >
    > > --
    > > Gregory A. Beamer
    > > MVP; MCP: +I, SE, SD, DBA
    > >
    > > **********************************************************************
    > > Think Outside the Box!
    > > **********************************************************************
    > > "mark" <> wrote in message
    > > news:...
    > > > I have an asp.net ecommerce web application on a remote web server.
    > > > I'm using an Access database on the back end. I've notice a few
    > > > strange things. When I mimic an multiple user environment by surfin
    > > > it in multiple browsers simultaneously the site generates a generic
    > > > runtime error after awhile. I'm thinking this has something to do
    > > > with my access database and multiple connections. I'm using forms
    > > > authentication with a login page. Is there something else I should be
    > > > specifing in my connection to promote the use of multiple users. I've
    > > > had no problem in the past with access and asp 3.0 ecommerce sites.
    > > > I've also noticed that access makes the lock file for the database.
    > > > Could this be a problem. I've never noticed this with my asp 3.0
    > > > databases. When I put custom errors = Off to show the error it goes
    > > > back to a database.Open command in one of my class files, not always
    > > > the same one though.
    > > > Also a problem with the lock, can't ftp an updated database until the
    > > > lock is gone. Very annoying. Any help will be greatly appreciated.
    > > > Thanks.
    > > >
    > > >
    > > > <?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>
    Cowboy \(Gregory A. Beamer\), Oct 23, 2003
    #4
  5. mark

    mark Guest

    Again thanks for the helpful information. Just an update. I realized
    I was leaving it in debug mode when I built the project and was
    uploading this to the web server. I read somewhere that this causes a
    heavy load to the application. I rebuilt in release mode and set
    debug to false in web.config, I called dispose on all objects I could
    and added Finally to my trys where I moved all cleanup of objects
    where I could. I just tested it quickly and think this combination
    may have solved the problem. After surfing for several minutes the
    database file size stays nice and small and the .ldb locking file
    doesn't appear. I'm guessing the main culprit was leaving the site in
    debug mode. Any thoughts on this? And Again thanks for all the help.


    "Cowboy \(Gregory A. Beamer\)" <> wrote in message news:<>...
    > Call Dispose() on every object that has a Dispose() method. DO not try to
    > control GC yourself, unless you are planning on taking over GC completely.
    > (NOT a good idea)
    >
    > It is normal for the ASPNET worker process to lock up when there is an issue
    > with database, so other users locking is common. When you recopy the
    > web.config, you force the application to reset, as .NET resets when there
    > are config changes.
    >
    >
    > --
    > Gregory A. Beamer
    > MVP; MCP: +I, SE, SD, DBA
    >
    > **********************************************************************
    > Think Outside the Box!
    > **********************************************************************
    > "mark" <> wrote in message
    > news:...
    > > I forgot to mention that when this error occurs, it brings down the
    > > entire site for all other users as well. I recopy my web.config file
    > > to the web server and this clears the error. I've noticed also that
    > > the size of the database grows substantially after I login and begin
    > > to surf around(500k to 2.5mb). I will go back again to make sure
    > > everything is closed and disposed. Could there be a problem with the
    > > garbage collection not being called enough?
    > >
    > >
    > >
    > > "Cowboy \(Gregory A. Beamer\)" <> wrote

    > in message news:<>...
    > > > This is a common problem with Access databases in web applications. It

    > was
    > > > also common in ASP 3.0, but perhaps not as noticeable due to the nature

    > of
    > > > COM.
    > > >
    > > > Some advice:
    > > > 1. Close all connections
    > > > 2. Dispose all objects with a Dispose() method
    > > >
    > > > Access is not a good eCommerce database, or a web database. It is often
    > > > used, as it is easy to implement and cheap to deploy, but it has too

    > many
    > > > problems from an Enterprise app perspective.
    > > >
    > > > --
    > > > Gregory A. Beamer
    > > > MVP; MCP: +I, SE, SD, DBA
    > > >
    > > > **********************************************************************
    > > > Think Outside the Box!
    > > > **********************************************************************
    > > > "mark" <> wrote in message
    > > > news:...
    > > > > I have an asp.net ecommerce web application on a remote web server.
    > > > > I'm using an Access database on the back end. I've notice a few
    > > > > strange things. When I mimic an multiple user environment by surfin
    > > > > it in multiple browsers simultaneously the site generates a generic
    > > > > runtime error after awhile. I'm thinking this has something to do
    > > > > with my access database and multiple connections. I'm using forms
    > > > > authentication with a login page. Is there something else I should be
    > > > > specifing in my connection to promote the use of multiple users. I've
    > > > > had no problem in the past with access and asp 3.0 ecommerce sites.
    > > > > I've also noticed that access makes the lock file for the database.
    > > > > Could this be a problem. I've never noticed this with my asp 3.0
    > > > > databases. When I put custom errors = Off to show the error it goes
    > > > > back to a database.Open command in one of my class files, not always
    > > > > the same one though.
    > > > > Also a problem with the lock, can't ftp an updated database until the
    > > > > lock is gone. Very annoying. Any help will be greatly appreciated.
    > > > > Thanks.
    > > > >
    > > > >
    > > > > <?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>
    mark, Oct 23, 2003
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Tom Wild
    Replies:
    2
    Views:
    1,561
    vMike
    Aug 25, 2003
  2. =?Utf-8?B?anNhbGU=?=

    ASP.NET multiple users/ single class files

    =?Utf-8?B?anNhbGU=?=, Dec 8, 2004, in forum: ASP .Net
    Replies:
    7
    Views:
    3,371
    Hans Kesting
    Dec 9, 2004
  3. Pablo
    Replies:
    2
    Views:
    447
    Gregory A. Beamer
    Apr 22, 2010
  4. Matt Adamson
    Replies:
    1
    Views:
    173
    Bob Barrows [MVP]
    Oct 4, 2006
  5. Pablo
    Replies:
    1
    Views:
    885
    Bob Barrows
    Apr 21, 2010
Loading...

Share This Page