【发布时间】:2016-09-27 10:14:09
【问题描述】:
我有一个使用 C# 创建的 Web 服务。
在此 Web 服务中,一个 config.inc 文件存储所有输入数据并根据新请求进行覆盖。根据输入,此 Web 服务在浏览器上提供 XML 输出。
我需要让多个用户同时访问我的网络服务。用户应根据 Web 服务的输入参数获取 XML 输出。 XML 输出不应在用户之间发生冲突。
完成此任务的任何准则。
编辑
以下是我们的网络服务实施中的问题,这就是我发布此问题的原因。
我们创建了部署在 IIS 服务器上的 Web 服务。在部署目录中有两个文件 config.inc 和 tempfile.xml。对于每个请求,config.inc 文件被覆盖以存储输入参数,并且根据输入参数,现有 tempfile.xml 文件被覆盖。我们使用 C# 在浏览器上显示它。
我们在实现中面临的问题是,当两个用户同时调用 Web 服务时,第二个用户所需的输出被发送给第一个用户,而第二个用户收到错误消息,我不知道如何解决这个问题。
如果有任何方法可以实现此网络服务以供多用户访问,请告诉我。
【问题讨论】:
-
这个问题没有任何意义。根据定义,Web 服务是多用户的。每个请求都由一个单独的线程处理。您为什么要询问多个用户以及配置文件与此有什么关系?
-
通过 Web 服务,我们连接到 Doors(IBM 需求管理工具),生成 Doors 模块(文档)的 XML 文件,并使用 C# 在浏览器上显示该 XML 文件。我们没有使用任何外部数据库,对于每个请求,都有两个文件被更新,即 config.inc 和 XML 文件。如果我们同时使用两个具有不同输入参数的用户运行我们的 Web 服务,则一个用户在浏览器上得到 XML 输出,而另一个用户得到错误消息。每个请求的输入参数都存储在 config.inc 文件中。
-
我们希望处理多个用户,这样每个用户都可以根据他对 Web 服务的输入参数获得 XML 输出。
-
这与网络服务无关。如果您运行两个命令行脚本来请求具有相同输出文件的相同数据,则会遇到同样的问题。别。不可能给出具体的答案,因为这 100% 是关于 DOORS,但您应该简单地将数据导出到不同的文件。只需传递一个随机名称作为输出文件名。
标签: c# xml web-services multiple-instances