C# 理解.NETWeb服务

C# 理解.NETWeb服务,c#,.net,web-services,soap,C#,.net,Web Services,Soap,我最近一直在看.NETWebservices(以前从未尝试过),我想知道是否有人能帮我了解一下他们的工作方式 我主要关注ASMXWeb服务;我知道这是我的遗产,但我只是想了解一下这一点,然后我会转向WCF,我读到它更好/更丰富 首先,我一直在看web服务代理这个词?这是什么?我的解决方案的哪一部分也是如此。当我创建解决方案时,它会在binn目录中生成一个.asmx文件和一个DLL文件 如果用户连接到asmx文件,DLL会做什么 此外,我过去曾在后续的.net解决方案中引用过asmx web服务,

我最近一直在看.NETWebservices(以前从未尝试过),我想知道是否有人能帮我了解一下他们的工作方式

我主要关注ASMXWeb服务;我知道这是我的遗产,但我只是想了解一下这一点,然后我会转向WCF,我读到它更好/更丰富

首先,我一直在看web服务代理这个词?这是什么?我的解决方案的哪一部分也是如此。当我创建解决方案时,它会在binn目录中生成一个.asmx文件和一个DLL文件

如果用户连接到asmx文件,DLL会做什么

此外,我过去曾在后续的.net解决方案中引用过asmx web服务,并在代码中轻松使用它们。.net asmx web服务是否可以从其他平台和语言(如基于PHP或Java的语言)使用,或者仅限于.net


很抱歉问了一些非常基本的问题。。。我只是觉得我的开始很简单:)

Web服务代理是代码中的一个类,它表示本地或远程托管的Web服务-它允许您的其他代码与该服务交互,就像它只是应用程序中的任何本地类一样。对于使用该服务的其他类来说,web服务可以远程托管这一事实是完全看不见的,它们只知道一个类存在并且有方法。这些方法通常转换为Web服务上的方法

ASMX文件有两个元素,一个是代码元素,就像ASPXASP.NETwebforms解决方案中有一个ASPX.CS一样。在该示例中,当编译代码时,仍然有一个ASPX,但是ASPX.CS被编译成一个DLL,由.NET运行时执行。这与ASMX完全相同

当您创建ASMXweb服务时,您也会得到一个自动生成的WSDL文件-这可以通过在web服务路径后附加“?WSDL”来查看。这个WSDL是一个标准,允许非.NET系统(在您的示例中是Java、PHP)使用web服务


希望这有帮助

Web服务代理是代码中的一个类,表示本地或远程托管的Web服务-它允许其他代码与该服务交互,就像它只是应用程序中的任何本地类一样。对于使用该服务的其他类来说,web服务可以远程托管这一事实是完全看不见的,它们只知道一个类存在并且有方法。这些方法通常转换为Web服务上的方法

ASMX文件有两个元素,一个是代码元素,就像ASPXASP.NETwebforms解决方案中有一个ASPX.CS一样。在该示例中,当编译代码时,仍然有一个ASPX,但是ASPX.CS被编译成一个DLL,由.NET运行时执行。这与ASMX完全相同

当您创建ASMXweb服务时,您也会得到一个自动生成的WSDL文件-这可以通过在web服务路径后附加“?WSDL”来查看。这个WSDL是一个标准,允许非.NET系统(在您的示例中是Java、PHP)使用web服务


希望这有帮助

好吧,你的问题很基本,但是,没有一个人生来就具备所有的知识,我发现自己在有确切问题的岁月里回顾过去


DLL的

我不知道你的编程世界是什么(PHP、Java等),但在编程语言(PHP是一种脚本语言,就像经典的ASP)中,有些代码是由某人编写的,有时是我们自己编写的,我们只是“连接”到该代码以使用它

在Java中,这是
.jar
文件,在.Net中是
.dll
文件,它们表示我们可以访问和使用的代码。我们称之为参考

每次编译项目时,都会生成、压缩和编译代码,生成DLL


代理

如果您之前在.NET中使用过Web服务,您知道您可能做的是添加一个Web引用,就这样,Web服务就可以使用了

这个操作生成了一个代理,一个从Web服务定义(WSDL)中提取的类,您现在可以通过简单的

myWebServiceClient ws = new myWebServiceClient();
int total = ws.Add(1, 2);
因此,在.NET中,您可以使用强类型对象,在开始编码Web服务之前生成代理,在Visual Studio中,此操作与向项目添加Web引用相同

您也可以通过调用名为
svcutil.exe的命令行工具手动生成代理


跨平台

因为Web服务使用公共语言(在本例中为SOAP),所以任何平台都可以使用在任何其他平台中创建的Web服务,只要它们遵循SOAP标准

如果您了解PHP,您可以在Visual Studio中轻松创建一个Web服务,其中它生成了
asmx
文件,并通过PHP中的任何SOAP库使用它,例如,只需指向创建的Web服务定义即可

htttp://localhost:6543/myservice.asmx?wsdl

好吧,你的问题很基本,但是,没有人天生就具备所有的知识,我发现自己在有确切问题的岁月里回顾过去


DLL的

我不知道你的编程世界是什么(PHP、Java等),但在编程语言(PHP是一种脚本语言,就像经典的ASP)中,有些代码是由某人编写的,有时是我们自己编写的,我们只是“连接”到该代码以使用它

在Java中,这是
.jar
文件,在.Net中是文件