使用WCF服务需要什么URL

时间:2014-01-16 11:42:19

标签: wcf

我在Visual Studio 2010中创建了一个WCF服务,并将其发布到运行IIS 7.5的服务器上。

它有一个方法 - 名为returnNumber。这需要一个名为numberIn的int参数,将其乘以2并返回答案。

如果我把

http://myserver/TestService/Service1.svc?wsdl

在浏览器中,它会显示一个XHTML页面。

我应该使用什么网址,以便我可以从浏览器调用我的WCF服务 - 在QueryString中传递一个数字,以便调用returnNumber方法?


下面的回复 - 丹尼尔 - 这是我的代码:

网络配置:

<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>

包含接口的IServicer1.cs文件:

namespace NumberTest
{
    [ServiceContract]
    public interface IService1
    {
    [OperationContract(IsOneWay = false)]
    int returnNumber(int numberIn);
    }
}

和Service1.svc.cs

namespace NumberTest
{
    public class NumberService : IService1
    {
        public int returnNumber(int numberIn)
        {
        int returnValue = numberIn * 2;
        return returnValue;
    }
}

我已将上述内容发布到

http://myServer/TestService

并且,如果我在VS Web应用程序中添加对WCF服务的引用,则会公开returnNumber方法,并且如果我调用它,它将起作用。

如何让人们运行不是asp.net的网站(因此无法添加服务引用)才能调用我的returnNumber方法并获取一个号码?

3 个答案:

答案 0 :(得分:0)

您可以使用WCF测试客户端(取决于您使用的VS的版本),弹出WSDL的地址,并使用它来测试您的网络服务。

如果您使用测试客户端和Fiddler等工具,您可以通过查找Web服务的HTTP POST来找到正在使用的URL。

答案 1 :(得分:0)

要将参数传递给查询字符串上的服务,遗憾的是您没有使用正确的技术堆栈。

WCF在SOAP 1.2(默认情况下)端点上公开Web操作,这意味着Web服务器需要一个指向服务URL的SOAP请求(包含XML请求有效负载的SOAP信封)。

您要做的是连接一个纯HTTP Web服务,正确的Microsoft技术堆栈为ASP.NET WebApi

答案 2 :(得分:0)

关于第二个问题,从nonasp.net平台使用您的Web服务,您只需要配置您的服务以提供WSDL。

非.NET平台(又称Java)具有使用WSDL并生成必要客户端代码的工具,例如wsdl2java。

工具和用法因平台而异,但以下链接应提供有价值的参考点。 http://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html

此致