Problem with Stratframe ASP.Net Web Example


Author
Message
John Davies
John Davies
StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)
Group: Forum Members
Posts: 13, Visits: 136
Hi,

I wonder if you can help ... I was working through your Web sample ... and now I keep getting the error below when I click on a page that access the Strataframe database, Remote connections are enabled.  Can you help ?  I have SQL 2000 installed and SQL Express.  In my global asax file I added the connection string

DataLayer.DataSources.Add(new SqlDataSourceItem("", "Server = ./SqlExpress;Database=StrataFrameSample;Integrated Security=SSPI"));

.... although I don't believe I need it.  I have also successfully connected to the database using the Database connection Tool.

Error
An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Source Error:

Line 127:Line 128://-- Execute the commandLine 129:Customers.FillDataTable(loCommand);Line 130:Line 131://-- Stop the watch


Source File: e:\Program Files\MicroFour\StrataFrame\CSharp Samples\Web Sample\SearchCustomers.aspx.cs    Line: 129

Stack Trace:

[SqlException (0x80131904): An error has occurred while establishing a connection to the server.  When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)] 


Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Hi John.

Just a guess, but have you tried changing this "./SqlExpress" to something like "YourMachineName/SqlExpress" ?

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
although I don't believe I need it.  I have also successfully connected to the database using the Database connection Tool.

Actually you DO need it.  This is the connection string that establishes the connection for the application.  First, it looks like you are trying to use a named pipe, which is OK, but you need to ensure that you have permissions for this.  You are trying to connect using integrated security which is probably not going to allow named pipes through a web session be default so you would want to connect using a user name and password. 

Secondly, you said that you were using SQL 2000, but the error message indicates that you are using SQL Server 2005 and Express wasn't a 2000 product the replacement for MSDE thus the new name in 2005...so I am pretty confident you are running 2005 Express.

Finally, the message that you provided is spot on accurate when a connection fails as this is not a message that we generate.  Most times it is best to use a connection that provides a user name and password and uses TCP versus named pipes when coming from a web application:

server=localhost\SQLEXPRESS;user id=sa;password=MyPassword;database=StrataFrameSample

Try something along those lines and see if you have better luck. Smile

John Davies
John Davies
StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)
Group: Forum Members
Posts: 13, Visits: 136
Hi Trent,

First, thanks for your promt reply.  I changed the DSN as you suggested using Localhost and putting in my SQL 2005 credentials.  Now the search customers form work ok. 

I am a newby to this and I have a couple of questions based on your points. 

1) I am now using an SQL log In rather than windows.  Is this the distinction you were making when you refered to TCP/IP connection versus Named pipes ? 

2) This might be a silly question but I thought that it was better to use Windows authentication or is this only for forms access.

3)  In the mean while I have a similar set up on my laptop where I am using XP Professional.  After the problem I had I went downstairs used my Laptop and realised it was probably on my laptop that I had seen the customer search working.  I checked the global.asax file and noted I had not set up a connection string yet it appeared to be working ok.  I am sure I read somewhere that the controls can use a default value for the connection string.  Is this probably the case ?  where did I set this default ?

4)  In both my set-ups the Search Customer form now works ok.  But, when I perform an edit of the data and try and save the edit I get the error below.  I noted in the design view of the form WebBindingSource.aspx the grid view has an error

"There was an error rendering the control".

"The data source does not support server-side data paging.

I'm not sure they are related ... can you suggest what I'm doing wrong ? 

Thanks in advance.

jd

Page error after edit

The business object 'Customers' could not be found on this page.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The business object 'Customers' could not be found on this page.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[InvalidOperationException: The business object 'Customers' could not be found on this page.]

StrataFrame Team
S
StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)StrataFrame Developer (4.4K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
1) I am now using an SQL log In rather than windows.  Is this the distinction you were making when you refered to TCP/IP connection versus Named pipes ?

Nope, connecting through Named Pipes means that a the application connects to SQL Server through memory, while a TCP/IP connection connects accross the network stack.  TCP/IP communication is disabled by default on SQL Server Express; you have to explicitly turn it on or you can only connect to the SQL Server from the machine where it's installed.

2) This might be a silly question but I thought that it was better to use Windows authentication or is this only for forms access.

With StrataFrame, there's no advantage either way.  But, with an SF WebForms application, the connection is shared across the entire AppDomain running the ASPX pages, meaning the IIS Hosting process shares the connection for all users that connect to the server.  If you use Windows authentication in a SF WebForms environment, you won't be able to consistently control the user under which the connections are opened since the user's credentials are not passed through to the connection.  So, you'll have to implement security in some other way besides using SQL Server security only.

3)  In the mean while I have a similar set up on my laptop where I am using XP Professional.  After the problem I had I went downstairs used my Laptop and realised it was probably on my laptop that I had seen the customer search working.  I checked the global.asax file and noted I had not set up a connection string yet it appeared to be working ok.  I am sure I read somewhere that the controls can use a default value for the connection string.  Is this probably the case ?  where did I set this default ?

The default is set through the global.asax file.  You specify the connection string when the DataBasics.DataSources.Add(new SqlDataSourceItem("", "conn string")); is called.  That connection string there is the one used by the data source.

4)  In both my set-ups the Search Customer form now works ok.  But, when I perform an edit of the data and try and save the edit I get the error below.  I noted in the design view of the form WebBindingSource.aspx the grid view has an error

"There was an error rendering the control".

"The data source does not support server-side data paging.

I'm not sure they are related ... can you suggest what I'm doing wrong ?

The WebBindingSource always displays that error at design-time, although the control itself does support paging.  So, the error you are receiving at runtime is independent of the error you're receiving at design-time (which can be ignored).  What's the error you're getting at runtime?

John Davies
John Davies
StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)
Group: Forum Members
Posts: 13, Visits: 136
Thanks for your answers to my questions .. you have helped my understandin a lot.

Here is the error message at run time.

The business object 'Customers' could not be found on this page.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The business object 'Customers' could not be found on this page.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[InvalidOperationException: The business object 'Customers' could not be found on this page.]   MicroFour.StrataFrame.UI.Web.BasePage.GetBusinessObject(String Name) +124   MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetBusinessObject() +38   MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetView(String viewName) +29   System.Web.UI.DataSourceControl.System.Web.UI.IDataSource.GetView(String viewName) +7   System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +226   System.Web.UI.WebControls.DataBoundControl.GetData() +4   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +57   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70   System.Web.UI.WebControls.GridView.DataBind() +4   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69   System.Web.UI.Control.EnsureChildControls() +87   System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +21   System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +292   System.Web.UI.Page.FindControl(String id) +39   System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +234   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1194


Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
If you can, copy your HTML or exception code into notepad or something before pasting into the posting editor to strip out the formatting...it will show up better on the forum posts.

It acts as though it cannot find the ApplicationBasePage or the BOs that have been defined within the page.  Do you have any compiler errors or warnings that stand out when building the web site?

John Davies
John Davies
StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)
Group: Forum Members
Posts: 13, Visits: 136
Hi Trent,

I've posted the error below ... I rebuilt the solution and got no errors.  All I got were warnings about XML comments.

Server Error in '/Web Sample' Application.
--------------------------------------------------------------------------------

The business object 'Customers' could not be found on this page.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The business object 'Customers' could not be found on this page.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace:


[InvalidOperationException: The business object 'Customers' could not be found on this page.]
   MicroFour.StrataFrame.UI.Web.BasePage.GetBusinessObject(String Name) +124
   MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetBusinessObject() +38
   MicroFour.StrataFrame.UI.Web.WebBusinessBindingSource.GetView(String viewName) +29
   System.Web.UI.DataSourceControl.System.Web.UI.IDataSource.GetView(String viewName) +7
   System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +226
   System.Web.UI.WebControls.DataBoundControl.GetData() +4
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +57
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
   System.Web.UI.WebControls.GridView.DataBind() +4
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +21
   System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +292
   System.Web.UI.Page.FindControl(String id) +39
   System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +234
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1194

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
I ran the sample again that comes with the framework and I just can't get it to fail.  So try this.  I have attached the sample that I test, extract it to a new location and just open up the global.asax and change your connection string to meet your needs.  Then just press Ctrl+F5 and run the web site.  It should work.

I did go ahead and upgrade the solution to a 2008 solution so it is expected VS2008.  If you do not have VS2008 let me know and I will create a VS2005 solution out of this.

Attachments
CSharpWebSample.zip (117 views, 202.00 KB)
John Davies
John Davies
StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)StrataFrame Beginner (13 reputation)
Group: Forum Members
Posts: 13, Visits: 136
Thanks again for your help.

Sorry, ... I will need a 2005 version ....

Regards

jd

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search