我是 WCF 新手,但对 C# 和 .Net 并不陌生。我正在使用 Visual Studio 2008 和 .Net 3.5。
我正在尝试构建一个可以接收任何入站请求 XML 和任何命名空间的 Web 服务。它的行为就像一个透明的接收器,只是接收入站请求 XML。
一旦我收到请求,我将把它传递给一些自定义的 .Net C# 项目,以调用 MQPUT 到 IBM MQ 系列。
现在我有 WCF Web 服务应用程序接收一个称为 RunTest() 的通用入站操作。我将 WSDL 使用到 SoapUI 中,构建了一个示例请求和断点,它可以工作。但是,当我尝试传递我们公司的请求 XML 时,它并没有落在断点上。
这是ServiceContract和Operation:
[ServiceContract(Name="IService1",Namespace="cfg-env=http://www.co.com/schemas/cfg- env/")]
//[ServiceContract]
public interface IService1
{
[OperationContract]
void RunTest();
[OperationContract]
void CFX();
以下是操作方法:
public void RunTest()
{ <<<it does break here using the request from the WSDL
string serviceName;
string queueManager;
string queue;
string requestMessage;
//Capture the Service Name
serviceName = "";
//Save the QueueManager
queueManager = "";
//Save the Request Queue
queue = "";
//Save the Message
requestMessage = "";
//Call MQ Put
Engine eng = new Engine();
try
{
eng.Put(serviceName, queue, requestMessage, queueManager);
}
我需要做的主要事情是接收入站 XML,查询它以获取一些信息,然后调用此方法在 MQ 上执行 MQPUT 功能。
入站命名空间看起来像上面的,但我想确保我可以接收和询问任何可能是命名空间限定的 XPATH。如果必须,我可以专门使用 cfg-env 命名空间前缀,因为我们的服务确实使用它作为标准。
在 VS 2008 WCF 中这样做的主要障碍是什么?如果您有任何链接,请尽可能传递它们。