将路径作为字符串发送到以'?'接收的WCF服务一开始

时间:2019-04-07 08:21:55

标签: wcf

我有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...
        }
    }
}

修改

我也尝试发送带引号的路径,但是此路径仍与此?一起接收(收到的其他字符串与没有?的字符串一起发送)`

0 个答案:

没有答案