gpt4 book ai didi

c# - WPF 应用程序未更新 WCF 服务的超时绑定(bind)信息

转载 作者:行者123 更新时间:2023-11-30 13:00:57 25 4
gpt4 key购买 nike

我有一个解决方案,其中包含一个 WCF 服务、一个 Windows 服务(用于托管它)和一个用于使用它的 WPF 应用程序。我有一个“数据访问 dll”,我正在从中引用该服务。当我搜索服务的解决方案时,它会找到它并毫无问题地引用它,它还会为其生成 app.config 文件。

我遇到的问题是,绑定(bind)信息并未全部更新。我的服务配置了超时,这些超时未在本地 app.config 文件中生成/更新。我能够通过手动添加它们来绕过它并且它工作正常;但是,我希望能够自动更新它们。

这是服务绑定(bind)的配置:

<bindings>
<netTcpBinding>
<binding name="StreamingBinding" receiveTimeout="00:15:00" sendTimeout="00:15:00"
transferMode="Streamed" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>

这是我引用该服务时生成的内容(注意它缺少超时):

<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ITestService" transferMode="Streamed">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>

有谁知道我做错了什么/遗漏了什么??

提前致谢!


下面的每个请求是我的服务的 app.config 和客户端的 app.config:

服务:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="StreamingBinding" receiveTimeout="00:15:00" sendTimeout="00:15:00"
transferMode="Streamed" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="TestService.Wcf.TestServiceWcf">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="StreamingBinding"
contract="TestService.Wcf.ITestServiceWcf">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8525/TestServiceService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>

客户:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ITestServiceWcf" transferMode="Streamed">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost:8525/TestServiceService"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_ITestServiceWcf"
contract="TestServiceService.ITestServiceWcf" name="NetTcpBinding_ITestServiceWcf">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>

最佳答案

您是否已将“StreamingBinding”与您的端点相关联?可能值得在“System.serviceModel”标签之间张贴所有内容以查看缺少的内容。从您的帖子看来,虽然您在两端都使用 netTcpBinding,但它们可能不是来自同一端点,即客户端可能只使用默认设置。

<services>
<service name="ServiceName">
<endpoint binding="netTcpBinding" bindingConfiguration="StreamingBinding"
name="NetTcpEndPoint" contract="ServiceContractName" />
</service>
</services>

关于c# - WPF 应用程序未更新 WCF 服务的超时绑定(bind)信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com