创建和使用Web服务以使用Visual Studio 2015和c#

时间:2015-09-05 11:15:20

标签: c# .net web-services wcf visual-studio-2015

我是Web服务开发的新手。我正在尝试为应用程序创建后端(顺便提一下,它是一个Windows 10 Universal App)。我想要做的很简单:我希望我的应用程序要求服务做某事,之后服务运行一些代码并返回一些东西。换句话说,我想从我的应用程序调用服务中定义的方法。

我已经找到了大量的指南,但它们都可以追溯到2000年初,并使用现在已经过时的技术。

到目前为止我设法做了什么

我使用WCF服务模板(Visual C#,。Net framework 4)创建了一个新网站(File-> New-> New Web Site),向其添加了一个Web服务ASMX(右键单击项目 - >添加 - >添加新项目 - > Web服务(ASMX)),然后我将一些webmethod添加到与Web服务相关联的.cs文件中。

[WebMethod]
public void MyVoidFunction() { //Do something }

然后,在我的应用中,我添加了对webservice的服务引用(右键单击引用 - >添加服务引用 - >将本地主机地址插入到.asmx - >单击Go - >分配命名空间 - >点击确定)。现在我可以使用我的webservice在我的应用程序中执行某些操作:

ServiceReference1.WebServiceSoapClient obj = new ServiceReference1.WebServiceSoapClient();
await obj.MyVoidFunctionAsync();

请注意,ServiceReference1是我在应用程序中添加引用时分配给Web服务的命名空间。

这实际上运行MyVoidFunction()。但是我不能直接调用方法obj.MyVoidFunction(),我不能调用非void函数并获取它们的返回值。

问题

  • 我应该如何创建网络服务? asmx是我需要做的正确模板吗?如果没有,有人可以提供一些有关如何执行此操作的文档,因为我发现的所有内容都指向asmx并且可以追溯到2010年之前。
  • 有没有办法直接调用我的网络服务中定义的方法而不使用await和自动生成的FunctionNameAsync()方法?

1 个答案:

答案 0 :(得分:1)

您正在寻找如此古老的文档,因为Web服务实现真的很老,并且没有相关新闻。 如果您正在制作Windows 10应用程序,则应该坚持使用更新的技术,它应该是JSON API。 尝试查找有关如何使用WebApi创建API的文档,Azure有一个产品(http://azure.microsoft.com/en-us/services/api-management/)。 在Windows 10应用程序中,使用HttpClient使用NewtonSoft.Json来使用此API来序列化和反序列化对象。