У меня есть служба WCF, которая получила string
от клиента, на стороне сервера, которая получила строку, представляющую файл .bat
, я хочу выполнить этот файл.
После того, как сервер получил сообщение, я печатаю его в журнал и вижу, что каждый путь (например, c:\tmp\file.bat
) получен с ?
в начале, например:
?c:\tmp\file.bat
Вот как определил мой сервер:
class Program
{
private static readonly log4net.ILog log = LogHelper.GetLogger("Main");
static void Main(string[] args)
{
//Config.Read();
var uris = new Uri[1];
string address = "net.tcp://localhost:4565/MessageService";
uris[0] = new Uri(address);
IMessageService messageService = new MessageService();
ServiceHost serviceHost = new ServiceHost(messageService, uris);
var binding = new NetTcpBinding(SecurityMode.None);
serviceHost.AddServiceEndpoint(typeof(IMessageService), binding, address);
serviceHost.Opened += ServiceHost_Opened;
try
{
serviceHost.Open();
Console.ReadLine();
}
catch (Exception e)
{
log.Error("Error while try to opening service host");
}
}
private static void ServiceHost_Opened(object sender, EventArgs e)
{
log.Info("SERVICE UP AND RUNNING...");
log.Debug("Listennig on port 4565");
}
}
}
namespace Server
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class MessageService : IMessageService
{
private static readonly log4net.ILog log = LogHelper.GetLogger("MessageService");
private string lastOutput;
public void DoWork(string message)
{
log.Debug($"Message {message}");
// Here i want to execute my path...
}
}
}
Редактировать
Я также пытаюсь отправить свой путь с кавычками, но этот путь все еще получен с этим ?
(другие строки, полученные при отправке без ?
) `