繁体   English   中英

如何从Remoting服务器生成WSDL文件?

[英]How can I generate the WSDL file from a Remoting server?

我是开发Web服务和客户端服务器应用程序的新手,我在理解如何从ac#web服务生成WSDL文件时遇到了麻烦。 我需要WSDL文件才能生成代理类并将其引用到通信客户端。

class my_server
{
    private static HttpChannel channel;
    private static int port = 3000;
    private static string serverUri = "myservice";

    static void Main(string[] args)
    {

        Console.WriteLine("Sample server");
        StartSoapServer(port);
        Console.ReadLine();

        StopSoapServer();
    }
    private static bool Start(int p)
    {
        try
        {
            port = p;
            channel = new HttpChannel(port);
            ChannelServices.RegisterChannel(channel, false);
             RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(server), serverUri, WellKnownObjectMode.Singleton);
            IServerChannelSink sinkChain = channel.ChannelSinkChain;

            Console.WriteLine("server created");
        }
        catch (Exception e)
        {

            return false;
        }
        return true;
    }

    private static void Stop()
    {
        string[] urls = channel.GetUrlsForUri(serverUri);
        if (urls.Length > 0)
        {
            string objectUrl = urls[0];
            string objectUri;
            string channelUri = channel.Parse(objectUrl, out objectUri);
            ChannelServices.UnregisterChannel(channel);
            Console.WriteLine("Server stopped");
        }
    }

    public class server : MarshalByRefObject
    {
        public server()
        { 
        }

        public override object InitializeLifetimeService()
        {
            return null;
        }
        public bool initialise()
        {
            Console.WriteLine("initialise()");
            return true;
        }
        public bool ping()
        {
            Console.WriteLine("ping");
            return true;
        }   
    }
}

显然服务器已经创建,并且一直运行直到它停止...但是当使用Storm( http://storm.codeplex.com/ )进行测试时:通过添加http://localhost:3000/myserviceuri它失败了.. 。如果没有实现客户端,我可以检查服务是否正常工作? 如何从此服务器生成WSDL文件? 我试过使用http://wsdlgenerator.codeplex.com/但显然它只适用于WCF服务......

对于.net中的.svc.asmx服务,你可以使用wsdl.exe来生成wsdl,就我而言。 对于远程处理,这就是微软所说的“Remoting对象可以提供描述对象及其方法的WSDL(参见Web服务描述语言(WSDL)1.1)文件。任何可以读取和生成对应于WSDL的SOAP请求的客户端file可以调用这个对象并使用SOAP与它进行通信..NET Remoting Server对象可以使用.NET SDK附带的SOAPSUDS.EXE工具来生成可以作为元数据的WSDL文件。这在组织需要时非常有用。提供任何客户都可以访问和使用的公共服务。“

您正在使用.NET Remoting,它早已被弃用以支持WCF。 所有新的Web服务和客户端开发都应该使用WCF。

您正在启动远程服务器而不是Web服务。 这可能是你的观点。 Alex Mendez指出,你的项目输出应该是.asmx 你有没有遵循这个程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM