Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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

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
.net WCF服务连接问题-可能是安全问题?_.net_Wcf_Security - Fatal编程技术网

.net WCF服务连接问题-可能是安全问题?

.net WCF服务连接问题-可能是安全问题?,.net,wcf,security,.net,Wcf,Security,我正在尝试调试WCF服务。此客户端以前可以连接,但现在无法连接。 该服务已部署到服务器。我可以用浏览器点击服务器的服务页面,看到生成客户端的说明。 我使用svcuti重新生成了客户端代理和配置文件 客户端启动,但对服务的第一次调用在1分钟超时后返回错误。同时,我可以连接到服务器上运行的服务,并逐步完成那里的代码。我可以看出我的客户从未注册过。此调用的服务器代码中的断点未命中。由于某些原因,我无法单步执行服务器代码(但我可以将调试器附加到服务器上的服务): 远程调试器已安装并正在运行,或者正在运行

我正在尝试调试WCF服务。此客户端以前可以连接,但现在无法连接。 该服务已部署到服务器。我可以用浏览器点击服务器的服务页面,看到生成客户端的说明。 我使用svcuti重新生成了客户端代理和配置文件

客户端启动,但对服务的第一次调用在1分钟超时后返回错误。同时,我可以连接到服务器上运行的服务,并逐步完成那里的代码。我可以看出我的客户从未注册过。此调用的服务器代码中的断点未命中。由于某些原因,我无法单步执行服务器代码(但我可以将调试器附加到服务器上的服务):

远程调试器已安装并正在运行,或者正在运行。 我在长时间超时后收到此错误:

Client is unable to finish the security negotiation within the 
configured timeout (00:00:00).  The current negotiation leg is 1 (00:00:00).
当我设置security mode=none并增加超时时,错误变为

The open operation did not complete within the allotted timeout of 00:02:00.
The time allotted to this operation may have been a portion of a 
longer timeout.
我没有任何防火墙在运行,我在Ethereal服务器上看到了请求。我正在查看TCP流,无法说明协商失败的原因。事件日志中没有任何相关内容。我快没气了,请给我一个提示

client app.config包含svcutil生成的部分:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsDualHttpBinding>
                <binding name="WSDualHttpBinding_SportRadarDCS" 
                    closeTimeout="00:01:00" openTimeout="00:01:00" 
                    receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" 
                    hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" 
                    maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" 
                    useDefaultWebProxy="true">
                      <readerQuotas 
                       maxDepth="32" maxStringContentLength="8192"  
                       maxArrayLength="16384"
                       maxBytesPerRead="4096" 
                       maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" 
                       inactivityTimeout="00:10:00" />
                    <security mode="Message">
                        <message clientCredentialType="Windows" 
                           negotiateServiceCredential="true"
                           algorithmSuite="Default" />
                    </security>
                </binding>
            </wsDualHttpBinding>
        </bindings>
        <client>
            <endpoint
                 address="...."
                binding="wsDualHttpBinding" 
                    bindingConfiguration="WSDualHttpBinding_SportRadarDCS"
                    contract="SportRadarDCS" 
                    name="WSDualHttpBinding_SportRadarDCS">
                <identity>
                    <userPrincipalName value=".. my domain user ..." />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>

看看WCF跟踪。如果您在服务主机上运行此操作,它将为您提供正在进行的单个WCF调用,并且应该足以让您了解配置的哪一部分被破坏

我发现这是解决连接问题的唯一方法


谢谢,非常有帮助。我发现的错误是:没有通道可以接受操作为“”的消息。我将从这里获取if。结果证明这是一个DNS问题。由于某种原因,我的工作站不在DNS中,在服务器上查找回调端点失败。一旦我解决了这个问题,它就成功了。为证明这一点干杯,通过WCF跟踪解决连接问题。很高兴你解决了你的问题。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsDualHttpBinding>
                <binding name="WSDualHttpBinding_SportRadarDCS" 
                    closeTimeout="00:01:00" openTimeout="00:01:00" 
                    receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" 
                    hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" 
                    maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" 
                    useDefaultWebProxy="true">
                      <readerQuotas 
                       maxDepth="32" maxStringContentLength="8192"  
                       maxArrayLength="16384"
                       maxBytesPerRead="4096" 
                       maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" 
                       inactivityTimeout="00:10:00" />
                    <security mode="Message">
                        <message clientCredentialType="Windows" 
                           negotiateServiceCredential="true"
                           algorithmSuite="Default" />
                    </security>
                </binding>
            </wsDualHttpBinding>
        </bindings>
        <client>
            <endpoint
                 address="...."
                binding="wsDualHttpBinding" 
                    bindingConfiguration="WSDualHttpBinding_SportRadarDCS"
                    contract="SportRadarDCS" 
                    name="WSDualHttpBinding_SportRadarDCS">
                <identity>
                    <userPrincipalName value=".. my domain user ..." />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>