我有一个WPF应用程序,它利用WCF将数据发送到服务器。在我的开发环境中工作得很好,但是当我通过Click Once发布它不起作用时,发送超时。如果我导航到Click Once安装到它的子文件夹,它就可以正常运行。它失败的唯一地方是从Click Once应用程序中生成它。该应用程序使用三种不同的服务,即使通过Click Once生成,这三种中的两种也完美地与此绑定配合使用。失败的服务是一个接受30K包并返回收据的功能。其他人只是数据。
这是我的WCF绑定。 以下是错误消息:
<binding name="netTCPActivity"
closeTimeout="00:01:00"
openTimeout="00:00:01"
receiveTimeout="00:01:00"
sendTimeout="00:01:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="100" maxBufferPoolSize="152428800" maxBufferSize="50000000"
maxConnections="300" maxReceivedMessageSize="50000000" portSharingEnabled="true">
<readerQuotas maxDepth="32" maxStringContentLength="81920" maxArrayLength="6638400"
maxBytesPerRead="40960" maxNameTableCharCount="563840" />
<reliableSession ordered="true" inactivityTimeout="00:00:20" enabled="false" />
<security mode="None" />
</binding>
发送到net.tcp://172.26.17.130:8015 / TARP的请求操作未在配置的超时(00:00:59.9843744)内收到回复。
分配给此操作的时间可能是较长超时的一部分。这可能是因为服务仍在处理操作或因为
服务无法发送回复消息。请考虑增加操作超时(通过将通道/代理转换为IContextChannel并进行设置
OperationTimeout属性)并确保服务能够连接到客户端。
答案 0 :(得分:2)
这可能是一个ClickOnce问题似乎有点奇怪。无论哪种方式,我都会以同样的方式调试它。首先,安装Fiddler。这是查看网络流量的绝佳工具。运行Fiddler,然后从exe运行您的应用程序。你应该看到Fiddler的所有服务流量。接下来,使用ClickOnce运行您的应用。将工作服务电话与坏电话进行比较,希望会有一些东西弹出。
答案 1 :(得分:-1)
你的问题有点不清楚。跳过clickonce启动器时它有效吗?或者它永远不会在开发环境之外工作?
您是否尝试从开发机器或某些测试机器运行ClickOnce应用程序?如果使用测试机可能是您试图到达的服务器IP无法通过测试机到达,但可以通过开发机器,您可以通过从测试机器ping它来验证吗?