【问题标题】:how do I configure my asp.net project to use WCF service [closed]如何配置我的 asp.net 项目以使用 WCF 服务 [关闭]
【发布时间】:2017-12-21 23:42:16
【问题描述】:

我是 WCF 的新手。我有 asp.net 项目,这是普通的 3tire 项目。我的解决方案的结构就像 1. DAL(类库数据访问层项目) 2. BL(类库业务逻辑) 3. BO(业务对象类库) 4.TestOnline(主web项目客户端) 5. WCFServices(类库项目) 现在我想将 WCF 类库项目包含到同一个解决方案中,并使用 WCF 服务来学习。我创建了适当的服务和合同。我的主 web 项目的 web.config 文件修改如下

<configuration>
<connectionStrings>
<add name="dbConnect" connectionString="Data Source=WIN-3150RFE75I8\PMSSERVER;Initial Catalog=TestDb_OnlineExam;Persist Security Info=True;User ID=sa;Password=pmsadmin1!" />    
</connectionStrings>
<system.web>
    <compilation debug="true" targetFramework="4.0" />
  <authentication mode="Forms">        
 </authentication>     
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"></serviceHostingEnvironment>
<services>
  <service name="WCFServices.LoginWcfService" behaviorConfiguration="LoginWcfServiceBehavior">
    <endpoint address="" binding="webHttpBinding" contract="WCFServices.ILoginWcfService" behaviorConfiguration="web">
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
  </service>
  </services>
  <behaviors>
  <serviceBehaviors>
    <behavior name="LoginWcfServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceDiscovery></serviceDiscovery>
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="web">
      <webHttp/>
    </behavior>
  </endpointBehaviors>
</behaviors>
<protocolMapping>
  <add binding="webHttpBinding" scheme="http"/>
</protocolMapping>
</system.serviceModel>
</configuration>

当我尝试运行我的项目时,显示的错误消息是:

在 ServiceModel 客户端配置部分中找不到引用合同“LoginServiceReference.ILoginWcfService”的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

我无法找到有关此错误的任何信息。

我检查了我的 WCF 服务的运行情况,它运行良好。只是无法在我的网络项目中使用它。我需要添加/修改哪些属性才能正常工作。

【问题讨论】:

  • 您拥有包含 WCF 项目和 ASP.Net 项目以及 DAL、业务层项目的单一 Visual Studio 解决方案是否正确?如果是这样,我首先想到的是将包括所有依赖项目在内的 WCF 项目保留在一个单独的 VS 解决方案中。通过这种方式,您可以将 WCF 托管在基于控制台的应用程序中以进行调试。其次,您的配置文件没有“LoginServiceReference.ILoginWcfService”的任何合同条目您是否发布了web.config文件的所有内容?
  • @YawarMurtaza 没有必要将所有 WCF 项目放在 “另一个解决方案” 中,只是为了基于控制台的调试或其他方式
  • @MickyD 这是正确的,我从来没有说过这是必要的。由于 OP 对 WCF 来说是新的,因此保持事物的独立性是有意义的,这有助于它的组织性和透明性。在学习新技术时,这样的小事真的很有帮助:)

标签: c# asp.net .net web-services wcf


【解决方案1】:

首先,我建议启动您的 wcf 站点。当它运行时,查看分配的端口。之后,继续在主 Web 的 Web 配置中添加它,就像客户端一样。以下页面可能很有用:

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/client-configuration

【讨论】:

    猜你喜欢
    • 2011-02-02
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2011-06-24
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多