gpt4 book ai didi

wcf - 如何创建 F# WCF 客户端?我不断收到 app.config 错误

转载 作者:行者123 更新时间:2023-12-04 15:26:36 25 4
gpt4 key购买 nike

我一直致力于在 F# 中创建一个自托管的应用程序服务器。我已经启动并运行了应用服务器,并且可以使用 C# 客户端进行连接,但我想做的一些事情最好使用 F#。问题是我似乎无法让 F# 客户端正常工作。我找到了一些例子,但我似乎无法让它们中的任何一个工作。最有希望的是here .按照那个例子,我想出了以下代码:

let address= new EndpointAddress("net.tcp://192.168.101.100:2009/PrevisionService/tcp")
let factory = new ChannelFactory<IPrevisionAppServer>("NetTcpBinding_IPrevisionAppServer", address)
let channel = factory.CreateChannel()//address)
let GetDataObject (sql) = channel.GetDataObject(sql)
factory.Close()

但我收到以下错误:

Could not find endpoint element with name 'NetTcpBinding_IPrevisionAppServer' and contract 'PrevisionAppServer.Main+IPrevisionAppServer' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this name could be found in the client element.



我确实有一个 app.config 文件,它在 C# 中工作得很好:
<?xml version="1.0" encoding="utf-8"?>
<!--Client Config-->
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IPrevisionAppServer" closeTimeout="00:01:00"
openTimeout="00:20:00" receiveTimeout="01:00:00" sendTimeout="01:00:00"
hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://192.168.101.100:2009/PrevisionService/tcp" behaviorConfiguration="ServiceViewEventBehavior"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IPrevisionAppServer"
contract="*" name="NetTcpBinding_IPrevisionAppServer">
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="ServiceViewEventBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>`

无论出于何种原因,它似乎都忽略了 app.config 文件。有任何想法吗?有更好的代码来让它工作吗?任何将不胜感激!

更新 : 好吧,我觉得很愚蠢,但是我没有注意到我是在一个测试客户端中运行这个的,该客户端也有一个 C# UI 作为启动,因此 app.config 在 C# 项目中。所以,现在问题变成了,如何将 C# app.config 应用到 F# 项目(我需要这种方式)?意思是,我真的不想将应用程序设置中的所有属性获取和设置都编码为代码。想法?

最佳答案

我不知道 contract="*" 是什么事情是(也许是 WCF 的一些新功能)。无论如何

'PrevisionAppServer.Main+IPrevisionAppServer' 

诊断中的位,这种类型在哪里定义? (F# 代码、C# 代码、引用 DLL,什么?)它看起来像一个嵌套类型,我想知道这是否也影响了事情......我只是在钓鱼。

(app.config 和 diagnostics 从来都不是 WCF 的最强属性,唉。)

关于wcf - 如何创建 F# WCF 客户端?我不断收到 app.config 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203108/

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