/// <summary> /// 响应Soap请求 /// </summary> /// <param name="httpContext">请求上下文</param> /// <param name="result">响应结果</param> /// <param name="resultName">响应参数名</param> public static void CreateSoapResponse(HttpContext httpContext, object result, string resultName = "") { Message responseMessage; var encoder = new BasicHttpBinding().CreateBindingElements().Find <MessageEncodingBindingElement>()?.CreateMessageEncoderFactory().Encoder; var actionName = httpContext.Request.Headers["SOAPAction"].FirstOrDefault()?.Trim('"').Split('/').LastOrDefault(); var bodyWriter = new ServiceBodyWriter("http://tempuri.org/", actionName + "Response", string.IsNullOrEmpty(resultName) ? (actionName + "Result") : resultName, result); responseMessage = Message.CreateMessage(encoder.MessageVersion, null, bodyWriter); httpContext.Response.ContentType = httpContext.Request.ContentType; httpContext.Response.Headers["SOAPAction"] = responseMessage.Headers.Action; encoder.WriteMessage(responseMessage, httpContext.Response.Body); }