0

我有一个使用各种 XmlDocument.CreateElement 和 AppendChild 方法调用动态构建的 SOAP 消息。这条肥皂消息看起来像这样:

var message="<SOAP:Envelope xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\">
<SOAP:Body>
<m:EDI  
ID=\"ConfigurationName={f0dc2db2-0431-4c31-ba8b-053a33f3899f}\" 
Frequency =\"8\" xmlns:m\"http://www.foo/schemas/\">
<Totes><Tote   
    a=\"\" 
    b=\"123\" 
    c=\"Stati\" 
    d=\"T8b52830b-fe69-4\" 
    e=\"M0056122648\" 
    f=\"Route\" 
    g=\"\" 
    h=\"1/1/0001 12:00:00 AM\" />
</Totes>
</m:EDI></SOAP:Body></SOAP:Envelope>";

现在,我希望将此发布到 MS MVC 操作,但我不知道要使用什么签名或如何发布它。我试过这个并且它有效,但 rawSoapMessage 参数在操作中为空:

var messageBytes = Encoding.UTF8.GetBytes(message); 
var webRequest = (HttpWebRequest) WebRequest.Create(url);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
webRequest.ContentLength = messageBytes.Count();

using (var s = webRequest.GetRequestStream())
{
     s.Write(messageBytes, 0, messageBytes.Length);
     s.Close();
}

var webResponse = (HttpWebResponse) webRequest.GetResponse();

这是我试图发布到的控制器操作:

public string ReceiveManifest([FromBody] string rawSoapMessage)
{
    return rawSoapMessage
}

删除“[FromBody]”会产生 404。

谢谢你。

4

1 回答 1

0

您只需将 WCF 服务端点(.svc 文件)添加到您当前的 Web 项目。

于 2013-09-05T12:56:38.540 回答