如题,在wcf 如何在server端将收到的message写入文件?、
我在网上找到的demo,是Nlog的一个例子,消息被莫名奇妙就打在console上了,求大神教我怎样让它不打在console上而是记录在文件里!!code:
static void Main(string[] args)
        {
            try
            {
                var uri = new Uri("http://localhost:5000/LogReceiver.svc");
                var host = new ServiceHost(typeof(LogReceiverForwardingService), uri);
                var binding = new BasicHttpBinding();
                host.AddServiceEndpoint(typeof(ILogReceiverServer), binding, uri);
                host.Open();
                
                Console.WriteLine("Host opened.");
                Console.ReadLine();
                host.Close();
                Console.WriteLine("Host closed.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERROR: {0}", ex.ToString());
                Console.ReadLine();
            }
        }

解决方案 »

  1.   

    你要改LogReceiverForwardingService,它负责收到信息后的具体处理。
      

  2.   

    这边是Console.WriteLine("Host opened.");,你把这行用写入文件的代码替换即可
      

  3.   

    我贴出来的code就是service啊,能详细点说怎么改吗
      

  4.   

    1/**//// <summary>
    2/// 写入日志文件
    3/// </summary>
    4/// <param name="input"></param>
    5private void WriteLogFile(string input)
    6{    
    7    /**////指定日志文件的目录
    8    string fname = Server.MapPath("upedFile") + "//logfile.txt";
    9    /**////定义文件信息对象
    10    FileInfo finfo = new FileInfo(fname);
    11
    12    /**////判断文件是否存在以及是否大于2K
    13    if ( finfo.Exists && finfo.Length > 2048 )
    14    {
    15        /**////删除该文件
    16        finfo.Delete();
    17    }
    18    /**////创建只写文件流
    19    using(FileStream fs = finfo.OpenWrite())
    20    {
    21        /**////根据上面创建的文件流创建写数据流
    22        StreamWriter w = new StreamWriter(fs);
    23        
    24        /**////设置写数据流的起始位置为文件流的末尾
    25        w.BaseStream.Seek(0, SeekOrigin.End);
    26        
    27        /**////写入“Log Entry : ”
    28        w.Write("/nLog Entry : ");
    29        
    30        /**////写入当前系统时间并换行
    31        w.Write("{0} {1} /r/n", DateTime.Now.ToLongTimeString(),
    32            DateTime.Now.ToLongDateString());
    33        
    34        /**////写入日志内容并换行
    35        w.Write(input + "/n");
    36        
    37        /**////写入------------------------------------“并换行
    38        w.Write("------------------------------------/n");
    39        
    40        /**////清空缓冲区内容,并把缓冲区内容写入基础流
    41        w.Flush();
    42        
    43        /**////关闭写数据流
    44        w.Close();
    45    }
    46}
      

  5.   

    大神,你没明白我意思还是我没明白你意思啊,你这样一个方法我咋调啊,client发来的message会神奇的自动跑到这个string参数啊里?
      

  6.   

    大神,你没明白我意思还是我没明白你意思啊,你这样一个方法我咋调啊,client发来的message会神奇的自动跑到这个string参数啊里?自己写个方法调用啊
      

  7.   

    大神,你没明白我意思还是我没明白你意思啊,你这样一个方法我咋调啊,client发来的message会神奇的自动跑到这个string参数啊里?自己写个方法调用啊入口参数给什么
      

  8.   

    大神,你没明白我意思还是我没明白你意思啊,你这样一个方法我咋调啊,client发来的message会神奇的自动跑到这个string参数啊里?自己写个方法调用啊入口参数给什么
      

  9.   

    你的代码只是打开了一个wcf服务..你要自己在IService中暴露接口 并在Service中实现记录到文件的方法 然后在客户端引用这个服务 再调用服务端的记录到文件的方法 。
      

  10.   

    都说了,你要改的是LogReceiverForwardingService这个类里头的日志输出代码鼠标定位到这串字符,然后按F12,然后开始找