Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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
C# 从Windows窗体和jQuery调用web服务_C#_Jquery_Winforms_Wcf_Web Services - Fatal编程技术网

C# 从Windows窗体和jQuery调用web服务

C# 从Windows窗体和jQuery调用web服务,c#,jquery,winforms,wcf,web-services,C#,Jquery,Winforms,Wcf,Web Services,我有一个现有的web WCF web服务,Windows窗体可以通过代理调用该服务 我还希望能够从jQuery调用此服务 以下是我的文章: 但是,我被卡住了,因为文章说要在服务的web.config中添加以下代码: <services> <service behaviorConfiguration="ProductServiceBehavior" name="ProductServiceHost.ProductService"> <

我有一个现有的web WCF web服务,Windows窗体可以通过代理调用该服务

我还希望能够从jQuery调用此服务

以下是我的文章:

但是,我被卡住了,因为文章说要在服务的web.config中添加以下代码:

<services>
  <service
      behaviorConfiguration="ProductServiceBehavior"
      name="ProductServiceHost.ProductService">
    <endpoint
      address=""
      binding="basicHttpBinding"
      contract="ProductServiceHost.IProductService" />
  </service>
</services>
但是,我的Windows窗体应用程序现在在调用该服务时出现以下错误:

<services>
  <service
      behaviorConfiguration="ProductServiceBehavior"
      name="ProductServiceHost.ProductService">
    <endpoint
      address=""
      binding="basicHttpBinding"
      contract="ProductServiceHost.IProductService" />
  </service>
</services>
服务器没有提供有意义的回复;这可能是由于契约不匹配、会话过早关闭或内部服务器错误造成的

这个错误大概是因为我在配置文件中有两个同名的服务。如果我给新服务一个新名称,我是否必须创建一个新方法


我尝试使用相同的方法,但这似乎是不可能的。

我认为您可以保留当前的配置。本文中所做的更改是对一个非常基本的配置进行的,目的是明确现有服务的配置(通过说明绑定、契约和行为)。您的配置已明确说明服务


您应该做的是添加一个新的配置供jquery使用,如本文所述:添加一个新的行为并添加一个新的端点。

我仍然可以对这两种方法使用相同的方法吗?文章说添加一个装饰供jQuery使用(我的服务接受一个参数)。您需要一个具有多个端点的服务(您已经拥有该名称=
MyApp.EndPoint.Services.TrainingService
)。您的服务有两个端点(一个端点具有
address=”“
,另一个端点具有
address=“mex”
)。对于jquery,我们必须添加一个具有
address=“Web”
的新端点。您链接的文章中描述了该端点的详细信息。对你的情况我会怎么做?从有效的配置开始(测试表单),添加新端点和所描述的行为(测试表单)尝试在jquery中使用新端点。谢谢vererik-这让我走了一段路。
  <service
      behaviorConfiguration="MyApp.EndPoint.Services.TrainingServiceBehavior"
      name="MyApp.EndPoint.Services.TrainingService">
    <endpoint
      address=""
      binding="basicHttpBinding"
      contract="MyApp.EndPoint.Services.Interface.ITrainingService" />
  </service>
[WebInvoke(Method = "POST", 
BodyStyle = WebMessageBodyStyle.WrappedRequest, 
ResponseFormat = WebMessageFormat.Json, 
RequestFormat = WebMessageFormat.Json)]