我想开发一个接收SOAP请求并返回SOAP响应的Web服务。我不知道该怎么做。我目前只使用以下代码来交换消息。任何人都可以帮我正确设置我的服务
IService.cs
[OperationContract(Name = "Receive")]
[WebInvoke(Method = "POST", UriTemplate = "Receive")]
string Receive(Stream odata);
Service.cs
public string Receive(Stream data)
{
string response=@"<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/""
xmlns:SOAP-ENC=""http://schemas.xmlsoap.org/soap/encoding/"" xmlns:xsi=""http:/
/www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/
XMLSchema"">
<SOAP-ENV:Body>
<m:Execute xmlns:m=""http://tempuri.org/"">
<m:name>name1</m:name>
<m:Value></m:Value>
</m:Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>";
return response;
}
这是web.config的一部分
<system.serviceModel>
<services>
<service name="Service" behaviorConfiguration="myServiceBehavior">
<endpoint name="webHttpBinding" address="" binding="webHttpBinding" contract="IService" behaviorConfiguration="webHttp"/>
<endpoint name="mexHttpBinding" address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttp">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
答案 0 :(得分:0)
我终于解决了这个问题。我需要通过其特殊配置
来支持WSE