2

嗨,我编写了简单的 WCF 服务并上传到我的本地 IIS(v7)服务器。所以网址是这样的http://mylink/WCF_SAMPLE/Service1.svc。我的 wcf web 服务是用 svcutil.exe 测试的,所以 wcf web 服务是正确的。

我尝试使用来自 AsiHttprequest 的 WCF Web 服务。但它失败了。我检查了显示的响应<object returned empty description>。这是我为 IOS 应用程序编写的代码。

 NSURL *url=[NSURL URLWithString:@"http://mylink/WCF_SAMPLE/Service1.svc"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"text/xml"];
[request setPostValue:@"john" forKey:@"fname"];
[request setPostValue:@"Carter" forKey:@"sname"];
[request setDelegate:self]; 
[request startAsynchronous]; 

这是我在 IService1.cs 中的 Web 服务代码:

[ServiceContract]
public interface IService1{
   [OperationContract]
   [WebInvoke(Method="POST",UriTemplate="/showemployeename")]
   string showemployeename(string fname,string sname);
}

Service1.svc.cs 内部

public class Service1:IService1{
 public string showemployeename(string fname,string sname)
 {
    return fname+sname
 }
}

这是我的 web.config 文件

<system.serviceModel>
  <services>
   <service name="WCF_SAMPLE.Service1" behaviorConfiguration="WCF_SAMPLE.Service1Behavior">
       <endpoint address="" binding="wsHttpBinding" contract="WCF_SAMPLE.IService1">
       </endpoint>
       <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
  </services>
  <behavior name="WCF_SAMPLE.Service1Behavior">
     <serviceMetadata httpGetEnabled="true" />
     <serviceDebug includeExceptionDetailInFaults="false"/>
   </behavior></system.serviceModel>

如何连接到 WCF Web 服务以及如何获取 showemployeename 功能?

感谢任何帮助

最佳 Rgds, df

4

1 回答 1

1

您正在将WCF_SAMPLE.Service1服务配置为使用.wsHttpBinding而不是webHttpBinding. 这篇简短的博客文章提供了一个使用webHttpBinding.

于 2012-10-16T12:16:15.573 回答