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
除非fiddler正在运行,否则不能通过oob连接到wcf服务_Wcf_Silverlight_Fiddler - Fatal编程技术网

除非fiddler正在运行,否则不能通过oob连接到wcf服务

除非fiddler正在运行,否则不能通过oob连接到wcf服务,wcf,silverlight,fiddler,Wcf,Silverlight,Fiddler,我有一个silverlight应用程序,该应用程序通过wcf(SSL/https)连接到iis上托管的公共服务。如果我在浏览器中启动应用程序,一切正常。一旦我以“脱离浏览器模式”启动应用程序,它就不再工作了。我试图找出fiddler的问题,但只要fiddler还在运行,一切正常。我在网上找到了很多关于这方面的帖子,但没有任何效果。有什么想法吗?fiddler到底做了什么,让它在oob中运行 总结: 1.“在浏览器中”一切正常 2.运行“浏览器不足”时未连接到公共服务 3.只要Fiddler还在运

我有一个silverlight应用程序,该应用程序通过wcf(SSL/https)连接到iis上托管的公共服务。如果我在浏览器中启动应用程序,一切正常。一旦我以“脱离浏览器模式”启动应用程序,它就不再工作了。我试图找出fiddler的问题,但只要fiddler还在运行,一切正常。我在网上找到了很多关于这方面的帖子,但没有任何效果。有什么想法吗?fiddler到底做了什么,让它在oob中运行

总结: 1.“在浏览器中”一切正常 2.运行“浏览器不足”时未连接到公共服务 3.只要Fiddler还在运行,它就在“浏览器外”运行

下面是我如何连接的一些信息

非常感谢你的帮助

致以最良好的祝愿。 马克

以下是我如何做每件事的一些信息:

自签名证书是否可能与所有证书有关

客户端到公共服务的连接如下所示:

 PublicServiceClient proxy;
    BinaryMessageEncodingBindingElement binaryMessageEncodingBindingElement = new     BinaryMessageEncodingBindingElement();
    HttpsTransportBindingElement httpsTransportBindingElement = new HttpsTransportBindingElement();
    httpsTransportBindingElement.MaxBufferSize = int.MaxValue;
    httpsTransportBindingElement.MaxReceivedMessageSize = int.MaxValue;
    httpsTransportBindingElement.TransferMode = TransferMode.Buffered;
    Binding binding = new CustomBinding(binaryMessageEncodingBindingElement,     httpsTransportBindingElement);
    binding.SendTimeout = new TimeSpan(0, 0, _WcfTimeout);
    binding.ReceiveTimeout = new TimeSpan(0, 0, _WcfTimeout);
    binding.OpenTimeout = new TimeSpan(0, 0, _WcfTimeout);
    binding.CloseTimeout = new TimeSpan(0, 0, _WcfTimeout);
    proxy = new PublicServiceClient(binding, new EndpointAddress("https://" +     App.CurrentParameter.WcfDomain + "/PublicService.svc"));
绑定服务器端(web.config):


服务服务器端(web.config):


如果您在Fiddler中禁用HTTPS解密(并重新启动),并且应用程序停止通过Fiddler工作,这意味着服务器上使用的自签名证书是问题所在,您需要通过信任该证书来修复它


如果在Fiddler中禁用HTTPS解密没有什么区别,那么问题可能与安全区域设置有关。有关原因的详细信息,请参阅。

在没有fiddler的情况下运行OOB时会发生什么行为,但连接不是SSL?您能测试这样的场景吗?连接总是SSL。如果它在OOB中运行,则会发生以下错误:Während des Vorgangs is eine Ausnahme aufgetreten,sodass das Ergebnis ungültig ist。澳大利亚医疗机构发现了一个例外0 | 0 | Void RaiseExceptionIfEssential()处的Void RaiseExceptionIfEssential()第0行SL.PublicServiceReference.CustomerData处的0列get|U结果()第0行Void OnGetCustomerData处的0列完成(System.Object,SL.PublicServiceReference.GetCustomerDataCompletedEventArgs)第0行Void OnGetCustomerData处的0列完成(System.Object)第0行第0列“嗯,内部异常是什么意思?”;)您是否已经激活以获取有关错误的更多详细信息?我尝试了跟踪,但在OOB中没有任何记录。我认为OOB的调用永远不会到达服务器,因此不会记录任何内容。innerexception类似于:innerexception{System.ServiceModel.CommunicationException:Der Remoteserver hat einen Fehler zurückgeben:NotFound.System.Net.WebException:…:NotFound.System.Net.WebException:…:NotFound.bei System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)bei System.Net.Browser.BrowserHttpWebRequest.c__DisplayClassa.b__9(对象发送状态)bei System.Net.Browser.Asy。。。
   <binding name="Web.PublicService.customBinding0" sendTimeout="00:01:00" receiveTimeout="00:01:00" openTimeout="00:01:00" closeTimeout="00:01:00">
    <binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647">
    <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
    </binaryMessageEncoding>
    <httpsTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" keepAliveEnabled="false"/>
    </binding>
  <service name="Web.PublicService">
    <endpoint address="" binding="customBinding"    bindingConfiguration="Web.PublicService.customBinding0" contract="Web.PublicService"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>