C# 如何从远程处理服务器生成WSDL文件?
我是开发web服务和客户机-服务器应用程序的新手,在理解如何从c#web服务生成WSDL文件方面遇到了困难。 我需要WSDL文件来生成代理类并将其引用到相应的客户端C# 如何从远程处理服务器生成WSDL文件?,c#,.net,client-server,remoting,C#,.net,Client Server,Remoting,我是开发web服务和客户机-服务器应用程序的新手,在理解如何从c#web服务生成WSDL文件方面遇到了困难。 我需要WSDL文件来生成代理类并将其引用到相应的客户端 class my_server { private static HttpChannel channel; private static int port = 3000; private static string serverUri = "myservice"; static void Main(
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://localhost:3000/myserviceuri
它失败了……如果不实现客户端,我如何检查服务是否正常工作?如何从该服务器生成WSDL文件?
我尝试过使用,但显然它只用于WCF服务…您启动的是远程处理服务器,而不是web服务。这可能是你的观点。正如Alex Mendez指出的,您的项目输出应该是
.asmx
。您遵守了吗?就我而言,您可以使用wsdl.exe为.net中的.svc
或.asmx
服务生成wsdl。对于远程处理,这说明“远程处理对象可以提供WSDL(请参阅Web服务描述语言(WSDL)1.1)描述对象及其方法的文件。任何可以读取和生成与WSDL文件对应的SOAP请求的客户端都可以调用此对象并使用SOAP与之通信。.NET远程处理服务器对象可以使用.NET SDK附带的SOAPSUDS.EXE工具生成可作为元数据的WSDL文件。这在以下情况下非常有用:n一个组织希望提供任何客户端都可以访问和使用的公共服务。”您使用的是.NET远程处理,而WCF早就被弃用了。所有新的web服务和客户端开发都应该使用WCF。该服务是一个.asmx web服务吗?@Alex Mendez它应该是一个远程API。使用System.remoting。因此,如果它不是web服务,您就不能期望得到wsdl。我遵循的是一个已经在工作的模板。有一些服务器遵循这个简单的模板和关联的客户端。这些客户端使用从WSDL生成的代理类作为引用…我在任何地方都找不到与此相关的任何内容..另一种方法是使用System.Remoting创建客户端..但我不会遵循模板…看起来这就是我要找的…我要找的WSDL生成工具不正确..谢谢