寻找有效说明的Web服务教程

时间:2013-06-02 13:34:13

标签: c# javascript jquery ajax web-services

好吧,我几乎达到了挫折的地步,我想要去打破一些事情。当然,简单地说。

现在大约一周我试着学习用C#编写的Web服务(WCF,ASMX Web服务,我不在乎,什么是最好的),我想用JQuery / AJAX(和没有ASP.NET webforms因为我想使用AngularJS)或者如果它更好,生成一个调用WCF的代理。

到目前为止我尝试了什么: 我开始使用普通的Web服务(在Visual Studio 2012中:启动一个空的ASP.NET Web应用程序并向其添加Web服务)。我运行web服务,它的工作原理。然后我将Web服务发布到IIS,以便我可以从另一台计算机上访问它。然后第一个问题出现了,它不会工作。似乎我必须在IIS上安装ASP.NET。它可以工作,但是当我在不同的计算机上调用Web服务时,我收到的消息是我只能在本地计算机上调用Web方法。

看这条消息给了我很多相同的结果:我必须配置我的web.config,我必须添加httpGet和httpPost标签。所以我这样做,但......仍然没有用。进一步搜索并没有给我正确的答案或解决方案。

但我所读到的是这种Web服务方式已过时,我应该使用WCF。因为我希望这个工作,并且它以什么方式无关紧要,只要服务在c#中,客户端是JS(使用AngularJS),我很高兴。

所以我搜索了很多教程,发现了很多教程,其中很多都没有,但是至少不适合我。错误和消息是我得到的,当我解决一个消息或错误时,我会得到下一个消息或错误。

使用WCF我现在可以调用操作合同,但我无法传递操作合同的参数。也许Json Syntax错误?我不知道。根据StackOverflow上的一些答案,我不得不添加一个RequestFormat。所以我做了。我还必须将WebGet更改为WebInvoke。但现在我得到405错误并在其上搜索,这似乎是一个Post / Get问题。所以我将AJAX调用中的Type更改为Post(它应该根据服务标题),但调用保持在GET上。我只是不理解,经过长时间的尝试后,它开始让我感到沮丧。

底线是:Web服务的最佳实践是什么?是否有一个很好的书面教程处理每一点,所以它实际上最终工作?或者我做错了什么?因为,因为互联网上可能有成千上万的网络服务,这肯定是我做错了,但我永远无法弄清楚是什么。

1 个答案:

答案 0 :(得分:1)

确保在web.config中托管您的Web服务的站点/服务器上没有运行WebDAV:

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
</system.webServer>

我还建议您查看ServiceStack以获取.NET网络服务,大量文档和文档。样品,例如HelloWorld&amp; Wiki