当前位置:编程学习 > C#/ASP.NET >>

关于WCF的问题~!急啊

本人初学WCF,公司的项目要用到WCF的内容
邮箱里给了我三个文件:1.wcfproxy.dll
2.wcf调用的客户端配置:
<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding >
          <readerQuotas  />
          <reliableSession  />
          <security mode="Message">
            <transport/>
            <message  />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>

    <client>
      <endpoint >
        <identity>
          <userPrincipalName value="london\arolinkuser" />
        </identity>

      </endpoint>


    </client>

  </system.serviceModel>
3.调用方法说明


namespace HH.HHDataService
{
    public class QueryFunction
    {

                public static DataSet GetMessageID(string strDateTime, string strDataNumber)
        {
        }
                public static DataSet GetMessageIDE(string strDateTime, string strDataNumber)
        {
        }
               public static DataSet GetMessageCount(string strDateTime)
        {
        }
               public static DataSet GetMessageCountE(string strDateTime)
        {
        }
               public static DataSet GetMessageIDCount(string strDateTime, string strDataNumber)
        {
        }
               public static DataSet GetMessageIDCountE(string strDateTime, string strDataNumber)
        {
        }
                public static DataSet GetErrorMessage(string strDateTime, string strDataNumber)
        {
        }
                public static DataSet GetErrorMessageE(string strDateTime, string strDataNumber)
        {
        }
               public static DataSet GetNewMessage()
        {
        }
                public static DataSet GetNewMessageE()
        {
        }
               public static DataSet GetMessageIDByDay(string strDateTime)
        {
        }

        public static DataSet GetMessageIDByDayE(string strDateTime)
        {
        }
}
请问我该怎么弄?步骤是什么?想快速学习WCF,求各位大侠帮助谢谢.....步骤尽量详细点,很急~!真的很急 --------------------编程问答-------------------- 补充一下,我这边是客户端,要调用服务器端的数据 --------------------编程问答-------------------- wcfproxy.dll看名字应该就是客户端使用的代理类。

在你的客户端程序中引用它。用Object browser浏览,看看是不是有GetMessageID这样的函数。
如果有的话,直接实例化类,在调用函数即可。
CRMCustomerService.CRMCustomerServiceClient serviceClient = new CRMCustomerService.CRMCustomerServiceClient();
serviceClient.GetMessageID(...);

在app.config或者web.config中加入客户端配置的内容。看你贴出的东西应该不是完整的,至少<endpoint >中应该有地址。完整了应该看起来类似于:
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="CRMCustomerService" closeTimeout="00:01:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" bypassProxyOnLocal="false" transactionFlow="true" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="10485760" maxReceivedMessageSize="10485760" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
          <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://192.168.20.227/WilcomPesCrmWebservicesHost/HostWcf/CRMCustomerServiceWcf/CRMCustomerService.svc"
        binding="wsHttpBinding" bindingConfiguration="CRMCustomerService"
        contract="CRMCustomerService.ICRMCustomerService" name="CRMCustomerService" />
      <endpoint address="https://192.168.20.227/PesCrmWebservicesHost/HostWcf/CRMCustomerServiceWcf/CRMCustomerService.svc"
        binding="wsHttpBinding" bindingConfiguration="CRMCustomerService"
        contract="CRMCustomerService.ICRMCouponService" name="CRMCouponService" />
    </client>
  </system.serviceModel>


--------------------编程问答-------------------- 添加 wcfproxy.dll 的引用。地址应该也在这个dll里面了。
用IDE的object view,看看里面都有什么类。


--------------------编程问答--------------------
引用 2 楼 findcaiyzh 的回复:
wcfproxy.dll看名字应该就是客户端使用的代理类。

在你的客户端程序中引用它。用Object browser浏览,看看是不是有GetMessageID这样的函数。
如果有的话,直接实例化类,在调用函数即可。
CRMCustomerService.CRMCustomerServiceClient serviceClient = new CRMCustomerService.CRMC……
object browser 是什么?怎么打开浏览  谢谢 --------------------编程问答-------------------- 引用了dll  然后在vs的solution browser里双击这个引用过的dll 就会打开  object browser
可以浏览该dll公开的所有信息 --------------------编程问答-------------------- 在代理中找到了方法,然后就是实例化类是吧?
--------------------编程问答-------------------- Ctrl+W,J --------------------编程问答--------------------
引用 7 楼 fangxinggood 的回复:
Ctrl+W,J

问一下,实例化是直接在页面的后台实例化的吧?为什么我这样操作之后显示404错误呢?
还有几个不清楚的地方
1.这种方法需不需要新建wcf的项目(直接在项目的bin目录下引用wcfpcoxy.dll中也有这些方法)
2.我用GridView中的objectdatesoure绑定的wcfpcoxy.dll中的方法,提示404错误,是怎么回事呢? --------------------编程问答-------------------- 1. 不需要新建wcf项目
2. 404...访问的页面不存在。说明提供WCF服务的url不正确或者不存在。

serviceClient.Endpoint.Address 看看你访问的地址是否正确。 --------------------编程问答--------------------
引用 9 楼 fangxinggood 的回复:
1. 不需要新建wcf项目
2. 404...访问的页面不存在。说明提供WCF服务的url不正确或者不存在。

serviceClient.Endpoint.Address 看看你访问的地址是否正确。

<endpoint address="http://localhost/HHDS/HHDataService.svc" binding="wsHttpBinding"
                bindingConfiguration="WSHttpBinding_IHHDataService" contract="IHHDataService"
                name="WSHttpBinding_IHHDataService">
这个是他提供给我的东西,您说不需要新建wcf文件,那HHDataService.svc是从哪里来的呢 是从wcfpcoxy.dll中来的吗?这个url具体是什么的URL?不好意思,我第一次接触这个东西,比较小白,谢谢你... --------------------编程问答-------------------- 没人了吗,楼上的楼上,你还在吗 --------------------编程问答-------------------- 他给你这个? localhost 是本地。。。

.svc是服务端的服务类,如果他给你的服务已经实现了,就应该是一个实际的地址。
比如: http://192.168.1.102/HHDS/HHDataService.svc 这样的。

WCF入门请参考:http://blog.csdn.net/fangxinggood/archive/2010/12/28/6101790.aspx --------------------编程问答--------------------
引用 12 楼 fangxinggood 的回复:
他给你这个? localhost 是本地。。。

.svc是服务端的服务类,如果他给你的服务已经实现了,就应该是一个实际的地址。
比如: http://192.168.1.102/HHDS/HHDataService.svc 这样的。

WCF入门请参考:http://blog.csdn.net/fangxinggood/archive/2010/12/28/6101790.aspx

谢谢,你的意思就是这个地址是应该他提供给我的是吗?localhost是本机啊...再问下,如果服务端的服务类已经实现了,还有没有可能报404错呢? --------------------编程问答-------------------- 报的是这个错
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  --------------------编程问答-------------------- 如果已经实现,你就可以在IE里访问下试试了。当然需要服务端打开 httpGetEnable=true。

一般:http://192.168.1.102/HHDS/HHDataService.svc?wsdl 可以获得该服务的元数据。在浏览器里直接能访问看到。

还有贴的错误信息,翻译如下,看不出具体的问题所在。。。
在当前的Web请求中引发了一个未处理的异常,具体的信息可以参照如下的错误堆栈[完]
--------------------编程问答-------------------- 我也刚学不久,在楼主顶 --------------------编程问答-------------------- 支持一下啊
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,