IIS中的Web服务部署?

时间:2011-01-20 15:29:43

标签: c# asp.net web-services soap wsdl

我开始学习网络服务。我学习了Web服务,UDDI,WSDL,SOAP等以及Web服务的体系结构。 Visual Studio正在本地系统中成功运行该服务。

然后我在IIS wwwroot 中部署了该Web服务的整个文件夹,并进行了测试。它成功运行。

但是当我从 wwwroot \ webService1 文件夹中删除其他文件时(我只留下了 service1.asmx bin 文件夹),那么服务正在运行。

在这里,我看到只有两个文件用于恢复Web服务,一个是 .asmx ,另一个是 webService.dll bin 文件夹中。

我无法理解运行Web服务所需的SOAP,WSDL,命名空间或其他内容。

请澄清。

4 个答案:

答案 0 :(得分:6)

SOAP,WSDL,Namespace都由IIS和ASP.NET处理。在您的方案中,您的Web服务端点是您的asmx文件(部署中不需要.cs文件),bin文件夹中的DLL包含您为Web服务编写的代码(因此它可以执行某些操作)。

如果您在网络浏览器中调用您的网络服务,您应该看到列出的网络方法进行测试。 IIS知道如何处理* .asmx文件来执行此操作。如果单击一个,您应该看到一个示例表单(如果需要输入参数)和一个按钮。 IIS再次知道如何为您服务。当您单击该按钮时,IIS和ASP.NET将处理SOAPing您的请求,使用您的代码处理它以及将响应SOAP回复给您的工作。

如果在Visual Studio中创建“测试”项目,并设置指向已部署的Web服务的Web服务引用,Visual Studio将创建一个代理类,并从其发现的服务中引入一些其他代码。试试吧。您至少应该得到:一个定义您的Web服务的WSDL,一个名为 reference.cs 的文件,其中包含调用您的Web服务的繁重代码(从您的应用程序中提取SOAP请求并从中解析)回应)。

如果您下载了一个名为Fiddler的工具,您应该能够拦截并检查对您的Web服务的SOAP调用。

请查看Web Services with ASP.NET以获取更多信息。

答案 1 :(得分:3)

根本没有这样的'文件'。 asmxdll文件包含该服务的所有代码。您可以在为SOAP / WSDL信息请求的URL中看到其中的一些内容。

答案 2 :(得分:3)

我相信如果你在.asmx之后附加?WSDL,你会看到定义。 比如这个例子:

WSDL Example

答案 3 :(得分:2)

我认为这些是协议,不需要任何东西。 IIS和请求的应用程序了解这些协议。