我在 C# 中有一个 WCF 项目(:53763/WCFTestService.svc)和一个 Web 应用程序(:50238/CSharp/test.aspx)。我正在尝试在我的 Web 应用程序中调用 WCF 项目方法。我已将 WCF 项目添加为 Web 应用程序中的服务引用。
在 test.aspx.cs 文件中我有一个方法如下
[WebMethod()]
public static string GetWCF()
{
WCFTestServiceClient client = new WCFTestServiceClient();
string result = client.XMLData("1122");
return result;
}
当我运行此错误时:
在 ServiceModel 客户端配置部分中找不到引用合同“TestWCFServiceReference.IWCFTestService”的默认终结点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素
.
当我将 WCF 项目添加为我的 Web 应用程序中的服务引用时,Web 应用程序中的 web.config 文件不会自动更新。(添加引用时默认不添加代码)。我是否需要在 web.config 文件中添加任何内容才能使其正常工作?
WCF 项目的 web.config 是:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="WCFTestService.RestService" behaviorConfiguration="ServiceBehaviour">
<endpoint address="" binding="webHttpBinding" contract="WCFTestService.IRestService" behaviorConfiguration="web">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehaviour">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
<!--<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>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>