StrataFrame Forum

The remote server returned an error: (404) Not Found.

http://forum.strataframe.net/Topic18694.aspx

By Brian M O'neil - 8/22/2008

I'm posting a support issue that is already in progress via support@strataframe.net.

Hi.  I'm evaluating a trial and going through the documentation to get the first WinForm VB.NET example working with ES.  I'm getting the following exception:

 

The remote server returned an error: (404) Not Found.

 

on the following code:

 

Public Sub FillTop100()

        Me.FillDataTable("SELECT TOP 100 * FROM Customers")

End Sub

 

The exception is as follows:

 

System.Net.WebException was unhandled by user code

  Message="The remote server returned an error: (404) Not Found."

  Source="System"

  StackTrace:

       at System.Net.HttpWebRequest.GetResponse()    at MicroFour.StrataFrame.Data.Enterprise.EnterpriseDataSourceItem.SendRequestCore(BaseParams Params, RemoteDataSourceCommand Command)    at MicroFour.StrataFrame.Data.Enterprise.EnterpriseDataSourceItem.(DbCommand A_0, Boolean A_1, String A_2)    at MicroFour.StrataFrame.Data.DataLayer.GetDataTable(String Statement, Boolean RegisterNotification)    at MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(String SelectStatement)    at Tutorial_WinVB_1.CustomerBO.FillTop100() in C:\Projects\Strataframe\Tutorial_WinVB_1\Tutorial_WinVB_1\CustomerBO.vb:line 70    at Tutorial_WinVB_1.CustomerMaintenance.CustomerBO1_ParentFormLoading() in C:\Projects\Strataframe\Tutorial_WinVB_1\Tutorial_WinVB_1\CustomerMaintenance.vb:line 4    at MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()    at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.InitializeFormLoadObjects()    at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.OnLoad(EventArgs e)    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)    at System.Windows.Forms.Control.CreateControl()    at System.Windows.Forms.Control.WmShowWindow(Message& m)    at System.Windows.Forms.Control.WndProc(Message& m)    at System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)    at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  InnerException:

 

Here is my SetDataSources() method:

 

Private Shared Sub SetDataSources()

       

 

        '-- Create the data source

        Dim ds As New EnterpriseDataSourceItem("", _

            "titan-001v.titanconsultinggroup.com", 80, "MyDataSource", _

        New SqlDataSourceItem("MyDataSource"))

 

        ''-- Configure the compression and encryption (optional)

        ds.IsCompressed = True

        ds.IsEncrypted = True

        ds.EncryptionKey = New Byte() {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}

        ds.EncryptionVector = New Byte() {1, 2, 3, 4, 5, 6, 7, 8}

 

        ''-- Add the EnterpriseDataSourceItem

        DataLayer.DataSources.Add(ds)

 

End Sub

 

Here is my datasources.config:

 

<?xml version="1.0" encoding="utf-8" ?>

 

<DataSources>

                <DataSource DataSourceKey="MyDataSource">

                                <ConnectionString>server=localhost;Integrated Security=SSPI;Database=StrataFrameSample;</ConnectionString>

                                <TypeFullName>MicroFour.StrataFrame.Data.SqlDataSourceItem</TypeFullName>

                                <TypeAssemblyName>MicroFour StrataFrame Base</TypeAssemblyName>

                                <TypeAssemblyVersion>1.6.0.0</TypeAssemblyVersion>

                                <TypeAssemblyCulture>neutral</TypeAssemblyCulture>

                                <TypeAssemblyPublicToken>99fe9917f71608a7</TypeAssemblyPublicToken>

                                <IsEncrypted>True</IsEncrypted>

                                <IsCompressed>True</IsCompressed>

                                <EncryptionKey>1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4</EncryptionKey>

                                <EncryptionVector>1,2,3,4,5,6,7,8</EncryptionVector>

                                <TransactionTimeout>3600</TransactionTimeout>

                </DataSource>

</DataSources>

 

And attached is a screenshot of the ES Status page.  I'm running VS 2008, Vista 64-bit, IIS 6.0 SP1, SQL Server 9.0.1399 64-bit (with StrataFrame and StrataFrameSample databases) all running on the same machine with plenty of memory.  I've set the folder permissions to Everyone, Full Control and I'm allowing All Users to access the web service.

 

Any help would be appreciated.

 

Thanks,

 

Brian O'Neil

 

By Brian M O'neil - 8/22/2008

Response from Trent L. Taylor.

One more thought here.  I recommend that you install the 1.6.6 beta from the forum as well as the most recent site contents that can be found here: http://forum.strataframe.net/FindPost16782.aspx .  The most recent 1.6.6 beta build is here: http://forum.strataframe.net/FindPost18428.aspx

 

Trent L. Taylor
Senior Software Developer

By Brian M O'neil - 8/22/2008

Response from Trent L. Taylor.

Well, the first thing I would do is be consistent.  Make your data source names the same instead of being different on the client side and server side.  For example, on the client side, you have an empty string for the local data source key and the MyDataSource on the server.  So the very first thing to do would be to make these consistent by removing the named data source key on the server side from MyDataSource to an empty string (default).

Once this is done, update your connection definition on the client side to:

Dim ds As New EnterpriseDataSourceItem("", "titan-001v.titanconsultinggroup.com", 80, "", _

        New SqlDataSourceItem(""))

That is the first thing I would do.  If that doesn’t resolve your problem we can go from there.  Also, it would be best to post these types of requests on the forum as there are a lot more eyes on the forum versus the email and you can generally get much faster response times out there.

 

Trent L. Taylor
Senior Software Developer

By Brian M O'neil - 8/22/2008

Response from Trent L. Taylor.

After looking at your code again, your problem is the SQL portion of your connection string.  It should be like this:

 

Dim ds As New EnterpriseDataSourceItem("","titan-001v.titanconsultinggroup.com", 80, "MyDataSource", _

        New SqlDataSourceItem(""))

 

 

Try that and see if you have any better luck.

Trent L. Taylor
Senior Software Developer

By Brian M O'neil - 8/22/2008

I changed the project as follows:

Private Shared Sub SetDataSources()

'-- Create the data source

Dim ds As New EnterpriseDataSourceItem("", "titan-001v.titanconsultinggroup.com", 80, "", _

New SqlDataSourceItem(""))

''-- Configure the compression and encryption (optional)

ds.IsCompressed = True

ds.IsEncrypted = True

ds.EncryptionKey = New Byte() {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}

ds.EncryptionVector = New Byte() {1, 2, 3, 4, 5, 6, 7, 8}

''-- Add the EnterpriseDataSourceItem

DataLayer.DataSources.Add(ds)

End Sub

And changed the datasources.config:

<DataSources>
 <DataSource DataSourceKey="">
  <ConnectionString>server=localhost;Integrated Security=SSPI;Database=StrataFrameSample;</ConnectionString>
  <TypeFullName>MicroFour.StrataFrame.Data.SqlDataSourceItem</TypeFullName>
  <TypeAssemblyName>MicroFour StrataFrame Base</TypeAssemblyName>
  <TypeAssemblyVersion>1.6.0.0</TypeAssemblyVersion>
  <TypeAssemblyCulture>neutral</TypeAssemblyCulture>
  <TypeAssemblyPublicToken>99fe9917f71608a7</TypeAssemblyPublicToken>
  <IsEncrypted>True</IsEncrypted>
  <IsCompressed>True</IsCompressed>
  <EncryptionKey>1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4</EncryptionKey>
  <EncryptionVector>1,2,3,4,5,6,7,8</EncryptionVector>
  <TransactionTimeout>3600</TransactionTimeout>
 </DataSource>
</DataSources>

I did an iisreset after the changes and my ES status page is displaying.  I receive the following exception on the same line of code:

Public Sub FillTop100()

Me.FillDataTable("SELECT TOP 100 * FROM Customers")

End Sub

System.Net.WebException was unhandled by user code
  Message="The remote server returned an error: (404) Not Found."
  Source="System"
  StackTrace:
       at System.Net.HttpWebRequest.GetResponse()    at MicroFour.StrataFrame.Data.Enterprise.EnterpriseDataSourceItem.SendRequestCore(BaseParams Params, RemoteDataSourceCommand Command)    at MicroFour.StrataFrame.Data.Enterprise.EnterpriseDataSourceItem.ᜀ(DbCommand A_0, Boolean A_1, String A_2)    at MicroFour.StrataFrame.Data.DataLayer.GetDataTable(String Statement, Boolean RegisterNotification)    at MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(String SelectStatement)    at Tutorial_WinVB_1.CustomerBO.FillTop100() in C:\Projects\Strataframe\Tutorial_WinVB_1\Tutorial_WinVB_1\CustomerBO.vb:line 70    at Tutorial_WinVB_1.CustomerMaintenance.CustomerBO1_ParentFormLoading() in C:\Projects\Strataframe\Tutorial_WinVB_1\Tutorial_WinVB_1\CustomerMaintenance.vb:line 4    at MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()    at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.InitializeFormLoadObjects()    at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.OnLoad(EventArgs e)    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)    at System.Windows.Forms.Control.CreateControl()    at System.Windows.Forms.Control.WmShowWindow(Message& m)    at System.Windows.Forms.Control.WndProc(Message& m)    at System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)    at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  InnerException:

I didn't load the beta because since I'm new to SF I would rather eval a production release.

Any help is appreciated.

 

By Trent L. Taylor - 8/22/2008

I didn't load the beta because since I'm new to SF I would rather eval a production release.

The only reason 1.6.6 is dubbed "beta" is because we have not updated the docs...but if you want to really evaluate StrataFrame, I would recommend loading this release.  This is already in production in our medical software as well as many other major development shops around the world.  So don't let the word "beta" get in the way on this one Wink

Also, be sure that you get the SMTP stuff working properly as any errors will be sent to that address.  The error message you are getting is a standard HTTPRequest error message that indicates that the destination cannot be found. Start with the SMTP details first and see if any error messages appear. 

By Keith Chisarik - 8/22/2008

Just because this is fresh in my mind, you might want to change the "MyDataSource" as it must match the name of the datasource you defined as a DataSourceKey on the server in the datasources.config file. I initially left them the defaults and lost sight of ES datasource name and the datasource name for my applications datasource (BO's etc).

I just got done setting up an eval server and the process was pretty easy if I hadnt dropped a license file in the wrong spot it would have taken me about 20 minutes from start to end.