首先判断你的安全机制,把服务器端和客户端的Security.Mode = SecurityMode.None,而不用message,一般用配置文件的话,配置文件里binding里有security,把message改为None,如果是后台代码写的话,先实例化WSHttpBinding ws = new WSHttpBinding();然后ws.Security.Mode = SecurityMode.None;我建议用代码写,这样灵活,用配置文件还是比较容易出错。
如果这项没问题,你可以检查下自己基址,wcf的serverhost实例化的时候,可以选择性的加上基址,如果不加也可以在配置文件里找,但是建议自己写, Uri baseAddress = new Uri("http://192.168.1.99:8000/WcfDemo/Service");host = new ServiceHost(typeof(Service1),baseAddress);//WcfDemo.Service1 为引用的dll中的服务。一般很随意的把基址写成localhost,这样很容易出错,尤其是用配置文件,不改的话,默认是localhost,而且不易察觉。这样的话当你引用该服务的时候只能用机器名而不能用IP找到目标机器的服务。
如果用的是默认的localhost,就要把基址中的Localhost改为本机的IP,如果用的是配置文件的话,需要把找到你indetity下的dsn value把Localhost改为远程IP(目标机器IP)。
按照你得改了 还是不可以呢