关于C#,服务器,XML的问题

时间:2010-08-03 15:12:58

标签: c# xml

所以我正在为我的实习工作,并且打了一个砖墙。不幸的是,我认识的唯一有资格在办公室帮助我的人现在正在度假,谷歌不幸没有帮助(或者我的搜索技能不足),所以我想我会在这里问。

该项目基本上是让服务器模仿公司(制作手机应用程序)已经拥有的服务器。我需要做的是让他们的一个应用程序向我的服务器发送请求(我将不得不修改应用程序来执行此操作,但不知道如何),并让我的服务器回复该应用程序的XML响应知道如何处理。 (主要目的是让我们可以看到当真实服务器通过在我的服务器上模拟错误时应用程序如何响应它。)

现在,我已经从应用程序和真实服务器的模拟中获得了一些示例HTTP请求及其相关的XML响应。该应用程序是用C#编写的,目前将HTTP Web请求发送到真实服务器的在线位置,该位置使用XML响应这些HTTP Web请求。但是,我的服务器没有在线位置,因此必须修改应用程序以使用本地主机上的套接字。

我的问题:

1)我的老板说要创建一个XML文件来将某些请求与某些XML响应相关联,但我不知道他的意思或如何做到这一点。 (他说也可以用.ini文件完成。)有人知道吗?

2)一旦我有了这个可以建立这些关联的XML文件,我如何将它合并到我的服务器中,以便我的服务器可以检查它收到的请求对其有效请求表,并找出要发回的响应?

3)如何修改应用程序使用HTTP Web请求和响应以使用套接字?

如果您有任何问题/说明需要以便更好地回答这个问题,请不要犹豫,问我。

谢谢!

4 个答案:

答案 0 :(得分:1)

您所描述的是一项网络服务。不幸的是,他建议改变.ini文件中的设置,这听起来好像他们有一个专有系统来做这件事,而不是使用标准的ASMX(需要IIS)或WCF(可以在IIS中运行或作为独立运行)服务,这听起来像你想要的服务。

如果没有关于他们正在使用什么的更多信息,我不知道你能在这里得到很多帮助。

答案 1 :(得分:1)

回答问题#3:

HTTP是一种已在特定套接字上运行的协议(通常使用端口80)。 Internet套接字是用于在进程之间传输数据的端点。如果要运行自己的协议,则需要在特定端口上创建新的套接字(使用TCP或UDP)。

但是,这将要求您创建自己的客户端和服务器,以便在它们之间交换数据。

首先,here是C#中使用自定义套接字的一个非常简单的客户端 - 服务器示例。

祝你好运!

答案 2 :(得分:0)

询问你的老板这个客户端是否与soap通信,如果是这样,那么只需转到MSDN并找到有关实现ASMX webservice的教程,按照教程完成,你将有一个shell开始。

答案 3 :(得分:0)

首先我想说的是,你有一些不明确的要求,你应该向老板澄清一下。如果你不确定他的意思你应该找出来,因为没有什么比支持某人对要求的创造性解释更糟糕了。

1)听起来你的老板只是想要一种方法来轻松更改关联以进行测试,而无需重建应用程序,因此他要求您将这些关联存储在可以轻松修改的xml / ini文件中。在c#中,您可以轻松地在XML和DataSet对象之间进行操作,因此这应该是微不足道的。我首先在DataSet中创建数据结构,然后使用DataSet的GetXml方法输出xml格式。

2)在.NET中,您可以将对象存储在Cache中,并创建一个文件关联的缓存依赖关系。因此,无论何时修改文件,都会清除缓存。每当程序处理一个请求时,它就会从Cache中提取对象,如果该对象不在Cache中,那么你有一个条件块从磁盘上的xml / ini文件重建它。我将条件块调用一个函数,然后将上面提到的xml格式加载到数据集中,然后将数据集存储在具有缓存依赖关系的缓存中。

3)如果您正在尝试测试应用程序i / o,修改它以使用不同的传输层听起来是个坏主意。如果应用程序当前通过HTTP工作以发送请求,则只需路由HTTP请求。我怀疑应用程序可能有某个配置定义了它当前调用的Web服务的路径,一旦您知道该路径是什么,您可以更改它,或者如果不可能在运行该服务器的服务器上设置DNS规则应用程序将其路由到您的应用程序的位置。在Windows上,这就像在主机文件中添加一行一样简单。