我有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...
}
}
}
修改
我也尝试发送带引号的路径,但是此路径仍与此?
一起接收(收到的其他字符串与没有?
的字符串一起发送)`