Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 找不到引用约定的默认终结点元素';SumServiceReference.IService1';在ServiceModel客户端配置部分中_Wcf - Fatal编程技术网

Wcf 找不到引用约定的默认终结点元素';SumServiceReference.IService1';在ServiceModel客户端配置部分中

Wcf 找不到引用约定的默认终结点元素';SumServiceReference.IService1';在ServiceModel客户端配置部分中,wcf,Wcf,我想从代码隐藏和ajax调用一个服务。我可以使用ajax从客户端脚本调用它,但在从代码隐藏调用它时会出现异常 这是我的示例代码,这是一个用于演示的简单求和操作 服务合同: using System.ServiceModel; using System.ServiceModel.Web; namespace Sum_WcfService { [ServiceContract] public interface IService1 { [OperationContract] [We

我想从代码隐藏和ajax调用一个服务。我可以使用ajax从客户端脚本调用它,但在从代码隐藏调用它时会出现异常

这是我的示例代码,这是一个用于演示的简单求和操作

服务合同:

using System.ServiceModel;
using System.ServiceModel.Web;

namespace Sum_WcfService
{
[ServiceContract]
public interface IService1
{
    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
    int AddNums(int Num1, int Num2);
}
}
服务实施:

using System.ServiceModel.Activation;

namespace Sum_WcfService
{
[AspNetCompatibilityRequirements(RequirementsMode
= AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{
    public int AddNums(int Num1, int Num2)
    {
        return Num1 + Num2;
    }
}
}
在同一解决方案中添加客户端应用程序以使用我的服务 并添加了名为“SumServiceReference”的服务引用

客户端应用程序:

using System;
using System.Globalization;
using Sum_WcfService.SumServiceReference;

namespace Sum_WcfService
{
public partial class AddServiceClient : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void GetSum(object sender, EventArgs e)
    {
        var ServiceProxy = new Service1Client();
        int Num1,Num2;
        int.TryParse(txtNum1.Value, out Num1);
        int.TryParse(txtNum1.Value, out Num2);
        var Sum = ServiceProxy.AddNums(Num1, Num2);
        txtResult.Value = Sum.ToString(CultureInfo.InvariantCulture);
    }
}
}
我的配置文件是:

<?xml version="1.0"?>
<configuration>

<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>

<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<behaviors>
  <serviceBehaviors>
    <behavior name ="SumServiceBehavior">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>

  <endpointBehaviors>
    <behavior name="EndPointBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
</behaviors>

<services>
  <service name="Sum_WcfService.Service1" behaviorConfiguration="SumServiceBehavior">
    <endpoint address="" binding="webHttpBinding" contract="Sum_WcfService.IService1"       behaviorConfiguration="EndPointBehavior" />
  </service>
</services>

<client>
  <endpoint address="http://localhost/Sum_Wcf/Service1.svc"
   binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
   contract="Sum_WcfService.SumServiceReference.IService1" name="BasicHttpBinding_IService1" />
</client>

<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00" openTimeout="00:01:00"
              receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
              bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize="524288" maxBufferSize="65536" maxReceivedMessageSize="65536"
              textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"
              messageEncoding="Text">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
       maxBytesPerRead="4096" maxNameTableCharCount="16384" />
    </binding>

  </basicHttpBinding>
</bindings>
</system.serviceModel>

<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>

</configuration>

将服务元素更改为:

<service name="Sum_WcfService.Service1" behaviorConfiguration="SumServiceBehavior">
    <endpoint address="" binding="webHttpBinding" contract="Sum_WcfService.IService1" behaviorConfiguration="EndPointBehavior" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<client>
<endpoint address="http://localhost/Sum_Wcf/Service1.svc" binding="webHttpBinding"
behaviorConfiguration="EndPointBehavior" contract="SumServiceReference.IService1" name="WebHttpBinding_Sum" />
</client>

客户端元素为:

<service name="Sum_WcfService.Service1" behaviorConfiguration="SumServiceBehavior">
    <endpoint address="" binding="webHttpBinding" contract="Sum_WcfService.IService1" behaviorConfiguration="EndPointBehavior" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<client>
<endpoint address="http://localhost/Sum_Wcf/Service1.svc" binding="webHttpBinding"
behaviorConfiguration="EndPointBehavior" contract="SumServiceReference.IService1" name="WebHttpBinding_Sum" />
</client>