2011-11-23 167 views
0

我正在开发c#应用程序,发送和获取请求我们使用HTTP协议。 c#应用程序作为控制台应用程序的服务器运行,并且使用flex开发的前端完成的数据操作(CRUD)。 另一个C#应用程序是一个基于Windows的客户端(站),从数据库接收数据。 对于这个来自站点的请求作为http请求发送到服务器,并且服务器响应回到具有存在站点的本地数据库中的数据和存储数据的站点。 现在我的问题是,如果两个站运行相同的服务器,并要求不同的数据库,有时数据会彼此不匹配。 示例如果服务器包含两个数据库,说明db1和db2.And station1需要来自db2的db1和station2的数据。有时,Station1获取db2数据,station2获取db1数据。 怎么可能。请在下面找到一段代码。c#和HTTP协议

private void LogRequest(SiteSession siteSession) 
{ 
StringBuilder sb = new StringBuilder(); 
sb.AppendFormat("({0}) {1} {2}", 
Request.RemoteEndPoint.Address.ToString(), 
Request.Method.ToUpper(), 
Request.Uri.AbsoluteUri); 

if (siteSession != null) 
{ 
sb.AppendFormat("({0}/{1}/{2})", 
siteSession.sessionId, 
siteSession.site.Name, 
siteSession.user.UserName); 
} 
else 
{ 
sb.AppendFormat(" - not serviced, reason:no valid session"); 
} 

TouchServer.Log(Logger.MessageType.Trace, 1, sb.ToString()); 

if (TouchServer.showURLs) 
{ 
Console.WriteLine("{0}: {1}", DateTime.Now, sb.ToString()); 
} 

} 

请让我知道可能性。 谢谢。 Registers sangita

+0

您显示的代码似乎与您的问题没有关系。要回答你的问题,你将不得不显示更多的代码或描述你的服务器如何工作,以及客户如何连接/选择正确的服务器等。 – Jan

+1

同意Jan的观点。但是,在我看来,您在管理请求状态方面存在问题;例如,它可能是一个线程错误,其中两个并行请求会突变相同的上下文字段(例如记录它正在讨论哪个数据库的字段)。这里显而易见的错误是静态字段,但我们需要查看处理DB选择的服务器端代码。 –

+0

在你的例子中,station1总是希望来自DB1的数据,而station2总是需要来自DB2的数据?如果是这样,你可以使用一些映射(在配置文件中的帮助)来说明哪个数据库站应该获取数据。 – TeamWild

回答

-2

这个问题显然与数据库连接字符串有关。您可以编写连接字符串来记录或调试视图