soapweb服务与C#

soapweb服务与C#,c#,web-services,soap,C#,Web Services,Soap,我被要求在C语言中监听来自web服务的请求并在C语言中响应它们。。这有什么办法呢?我建议先看看 我建议您先看看 如果您的问题是:Web服务必须用C#编写吗?答案是“不”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NET 如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。如果您的问题是:Web服务是否必须用C#编写,答案是“否”。您可以用多种语言编写Web

我被要求在C语言中监听来自web服务的请求并在C语言中响应它们。。这有什么办法呢?

我建议先看看

我建议您先看看

如果您的问题是:Web服务必须用C#编写吗?答案是“不”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NET


如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。

如果您的问题是:Web服务是否必须用C#编写,答案是“否”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NET


如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。

我想您已经有了希望使用的Web服务。有几个关于在web上使用web服务的示例(例如:)

添加web引用 首先,你需要在你的C#项目中添加一个网络参考。在VS2005中,您可以通过右键单击项目并选择“AddWebReference”并提供web服务的url来实现这一点。在VS2008或更新版本中,会有一些额外的点击

完成后,VS将为您生成所有必要的代理类,包括同步和异步调用的方法,您可以像在本地实例化对象一样使用这些方法

查看生成的类 例如,如果您的web服务有一个方法(
DoSomething
),并且位于
www.example.com/MyService.asmx
(也称为“MyService”),Visual Studio将创建一个名为“MyService”的类,该类的外观如下:

namespace MyNamespace // <-- this is the name you choose when you 
{                     //     added the web reference

    public class MyService : SoapHttpClientProtocol
    {
         // synchronous execution
         public void DoSomething()
         {

         }

         // async execution
         public void DoSomethingAsync()
         {

         }

         // callback event for async execution
         public event DoSomethingCompletedEventHandler DoSomethingCompleted;
     }
}

namespace MyNamespace/我假定您已经有了一个希望使用的web服务。下面是几个在web上使用web服务的示例(例如:)

添加web引用 首先,你需要向你的C#项目中添加一个web引用。在VS2005中,你可以通过右键单击项目并选择“添加web引用”,然后提供web服务的url来完成。在VS2008或更高版本中,会有两次额外的点击

完成后,VS将为您生成所有必要的代理类,包括同步和异步调用的方法,您可以像在本地实例化对象一样使用这些方法

查看生成的类 例如,如果您的web服务有一个方法(
DoSomething
),并且位于
www.example.com/MyService.asmx
(也称为“MyService”),Visual Studio将创建一个名为“MyService”的类,该类的外观如下:

namespace MyNamespace // <-- this is the name you choose when you 
{                     //     added the web reference

    public class MyService : SoapHttpClientProtocol
    {
         // synchronous execution
         public void DoSomething()
         {

         }

         // async execution
         public void DoSomethingAsync()
         {

         }

         // callback event for async execution
         public event DoSomethingCompletedEventHandler DoSomethingCompleted;
     }
}
namespace MyNamespace/从解决方案资源管理器中选择“添加服务引用”(右键单击您的项目),然后将您要使用的Web服务的URL添加到地址栏并说“开始”

客户端应该从Visual Studio自动创建。

从解决方案资源管理器中选择“添加服务引用”(右键单击项目),然后将要使用的Web服务的URL添加到地址栏,并说“开始”


客户端应该从Visual Studio自动创建。

Web服务通常不进行调用,而是接收调用。是否要创建web服务?要详细说明吗?我已经创建了web服务。。。。我需要一个C#中的客户端。netWeb服务通常不进行呼叫,它们接收呼叫。是否要创建web服务?要详细说明吗?我已经创建了web服务。。。。我需要一个C#net中的客户端。即使web服务是用C#编写的,也没有必要用C#编写客户端。它可以是任何可以与web服务对话的东西。在VisualStudio中,只需右键单击项目(使用任何语言)并选择“添加服务引用”,即可引用web服务。这将为您生成web服务的代理,您的客户端代码只需调用此代理。即使web服务是用C#编写的,也不必用C#编写客户端。它可以是任何可以与web服务对话的东西。在VisualStudio中,只需右键单击项目(使用任何语言)并选择“添加服务引用”,即可引用web服务。这将为您生成web服务的代理,您的客户端代码只需调用此代理即可。谢谢!我添加了它,但我的最后一个问题是如何调用服务中的函数?谢谢!我添加了它,但我的最后一个问题是如何调用服务中的函数?
// create a new instance of the service
MyService service = new MyService();

// attach the event handler
service.DoSomethingCompleted += MyEventHandler;

// invoke the method asynchronously
service.DoSomethingAsync(); // <-- this will be invoked on a background thread