Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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# 当用户位于代理之后时,从客户端应用程序访问WCF服务_C#_Winforms_Proxy_Wcf - Fatal编程技术网

C# 当用户位于代理之后时,从客户端应用程序访问WCF服务

C# 当用户位于代理之后时,从客户端应用程序访问WCF服务,c#,winforms,proxy,wcf,C#,Winforms,Proxy,Wcf,我在服务器上托管了一个WCF服务。客户端应用程序正在访问windows 7计算机上的服务。Windows 7计算机上有两个用户。Windows应用程序是通过Clickonce安装的,因此将为两个用户提供单独的实例 当userA通过Winforms应用程序访问服务时,它工作正常,但当同一台计算机上的userB尝试访问服务时,会引发以下异常: 通信异常:远程服务器返回意外响应:(417)预期失败 Server stack trace: at System.ServiceModel.Chann

我在服务器上托管了一个WCF服务。客户端应用程序正在访问windows 7计算机上的服务。Windows 7计算机上有两个用户。Windows应用程序是通过Clickonce安装的,因此将为两个用户提供单独的实例

当userA通过Winforms应用程序访问服务时,它工作正常,但当同一台计算机上的userB尝试访问服务时,会引发以下异常: 通信异常:远程服务器返回意外响应:(417)预期失败

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Myapp.ServiceProxy.IMyAPIService.GetData(String userName, String passWord)
为一个用户工作而不为另一个用户工作的原因是什么?我遗漏了什么吗?

更新: 虽然我找到了这个问题的解决方案(请参阅下面的答案),但我仍然想知道在这个场景中应该做什么。正如MSDN所说,它阻止用户向服务器发送大量数据,但它并没有提到这方面的任何限制


客户端可以发送到服务器的数据限制是什么?有没有更好的方法从代理背后的客户端连接WCF服务

我终于破解了它。这是因为用户在代理后面

app.config中的以下设置解决了该问题:

<system.net>
   <settings>
      <servicePointManager expect100Continue="false" />
   </settings>
</system.net>

但对于大型文件上传来说,这仍然是一个问题,现在正在寻找解决方案


有关此操作的更多信息,请参见MSDN中的“如何使用代码执行此操作”: