我在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方法并获取一个号码?
答案 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
此致