У меня проблема с передачей переменной типа потока в автономную службу отдыха.
Вот мой код в клиентском приложении
static void Main(string[] args)
{
ChannelFactory<IService> cf = new ChannelFactory<IService>(new WebHttpBinding(), "http://localhost:8000");
cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
IService channel = cf.CreateChannel();
string strQuery = "<?xml version=\"1.0\"?><wql host='192.168.1.115' username='domain\\sebastian' password='password' Type='powershell'><query id='0.' ns='root\\cimv2' devicetype='powershell'><![CDATA[select CSName from Win32_OperatingSystem]]></query></wql>";
byte[] byteArray = Encoding.UTF8.GetBytes(strQuery);
MemoryStream stream = new MemoryStream(byteArray);
XmlDocument ResultSet = new XmlDocument();
ResultSet = channel.postGeneralXMLDocument(stream);
Console.Read();
}
Это в конечном итоге вызывает метод «postGeneralXMLDocument» в собственной службе.
Здесь "Stream strInput" не несет ожидаемого содержимого.
[XmlSerializerFormat]
public XmlDocument postGeneralXMLDocument(Stream strInput)
{
try
{
StreamReader sr = new StreamReader(strInput);
String strRequest = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(strRequest);
strQuery = qs["strQuery"];
//Do something
}
catch (Exception Ex)
{
}
}
А интерфейс такой..
[ServiceContract]
public interface IService
{
[XmlSerializerFormat]
[OperationContract]
[WebInvoke]
XmlDocument postGeneralXMLDocument(Stream strInput);
}
}
Я имел в виду следующий URL-адрес для создания этого
собственный хост wcf rest service
Если бы кто-то мог помочь мне решить это, это было бы здорово
Спасибо и с уважением Себастьян