New Posts New Posts RSS Feed: ServerConsole.exe and NAT
  FAQ FAQ  Forum Search   Calendar   Register Register  Login Login

ServerConsole.exe and NAT

 Post Reply Post Reply
Author
antalakas View Drop Down
Newbie
Newbie
Avatar

Joined: 25-Jun-2007
Location: Greece
Posts: 28
Post Options Post Options   Quote antalakas Quote  Post ReplyReply Direct Link To This Post Topic: ServerConsole.exe and NAT
    Posted: 04-Mar-2008 at 2:37pm
I use ServerConsole.exe to host a BOS instance for testing purposes.

Inside my network everything is fine. I can "see" BOS from a client deployed on a different pc.
I install the client to a machine outside my network. In this case i cannot login to the loginmanager (BOS)

I understand this is a NAT problem. I have read the workaround for IIS (manual, page 486, machineName).
My question is this deployment scenario possible (using ServerConsole or Windows service)? Is IIS deployment
the only way to use BOS behind a firewall?

Thank you

Andreas
Back to Top
davidklitzke View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 14-Jun-2007
Posts: 715
Post Options Post Options   Quote davidklitzke Quote  Post ReplyReply Direct Link To This Post Posted: 05-Mar-2008 at 1:59pm
If you cannot login to the machine outside the network, this is probably a NAT issue, but could possibly be some kind of network error.   If it is a NAT error, you will probably get some kind of corrupted packet message,
 
You cannot fix the problem by modifying the Web.config file because the Console Server does not use the Web.config file.  However, you may be able to fix the problem by modifying the Server App.config file.
 
If you want to use the BOS behind a firewall,  I recommend that you use either IIS (or WCF) and not a Console Server or Windows Service
 
 


Edited by davidklitzke - 05-Mar-2008 at 2:02pm
Back to Top
antalakas View Drop Down
Newbie
Newbie
Avatar

Joined: 25-Jun-2007
Location: Greece
Posts: 28
Post Options Post Options   Quote antalakas Quote  Post ReplyReply Direct Link To This Post Posted: 06-Mar-2008 at 7:43am
I used ServerConsole.exe as a WCF host. I think that i should not have NAT issues, as i have implemented at least 5 WCF services and deployed them behind a firewall with no problems. I can only understand that, although ServerConsole.exe is a normal WCF host, it is governed by rules that deny NAT access. I asked why this happens. I only used it for testing purposes.
Then started ServerConsole.exe and used a port scanner to test if port 9009 "goes through", and it did...

To go further, i tried the tutorial for IIS (WCF IIS deployment) and on my machine everything was perfect.

When i deployed at another IIS (either in the local network or the Internet), i cannot login.

http://IP_Address/WcfQuickAppCS/TestAsa.aspx displays correctly.

Here is the error, any ideas?:

Thank you!

2008-03-06 17:21:55
IdeaBlade.Persistence.Rdb RdbQuerySqlFormatter::Fetch RdbKey: [default] Sql: select * from "dbo"."User" where ((1 = 0))
2008-03-06 17:21:55
IdeaBlade.Persistence.Server PersistenceServer::Fetch System.Data.OleDb.OleDbException: Invalid object name 'dbo.User'. at System.Data.OleDb.OleDbDataReader.ProcessResults(OleDbHResult hr) at System.Data.OleDb.OleDbDataReader.NextResult() at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) at IdeaBlade.Persistence.Rdb.RdbQuerySqlFormatter.Fetch(Type pEntityType, DataSet pDataSet, IDbSelectCommandBuilder pDbCommandBuilder) at IdeaBlade.Persistence.Rdb.RdbQuerySqlFormatter.Fetch(Type pEntityType, DataSet pDataSet, ParameterizedSql pParamSql, Int32 pCommandTimeout) at IdeaBlade.Persistence.Rdb.RdbQuery.Fetch(DataSet pDataSet, IDataSourceKey pDataSourceKey) at IdeaBlade.Persistence.Server.PersistenceServer.Fetch(IEntityQuery pQuery, DataSet pDataSet, IDataSourceKey pDsKey) at IdeaBlade.Persistence.Server.PersistenceServer.Fetch(SessionBundle pSessionBundle, IEntityQuery pEntityQuery)

Back to Top
davidklitzke View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 14-Jun-2007
Posts: 715
Post Options Post Options   Quote davidklitzke Quote  Post ReplyReply Direct Link To This Post Posted: 07-Mar-2008 at 10:41am
It doesn't look to me that you are having a NAT problem.  Usually,with a NAT problem, the client will see the packet sent from the server back to the client as a corrupted packet, and you will get some communication error (e.g., "packet contains  invalid binary header").  In your case, the server is having problems talking to the database (Invalid object name 'dbo.User').
 
Try using a database profiler to see why the database is rejecting the query.
Back to Top
antalakas View Drop Down
Newbie
Newbie
Avatar

Joined: 25-Jun-2007
Location: Greece
Posts: 28
Post Options Post Options   Quote antalakas Quote  Post ReplyReply Direct Link To This Post Posted: 08-Mar-2008 at 12:21am
You are right, something went wrong when restoring IdeaBlade 's db on the server.

Thank you

Andreas
Andreas Ntalakas
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down