我已经阅读了几篇用户遇到同样问题的帖子。编译时,.exe无法从app.config加载任何资源。即使将app.config复制到输出目录,也会发生这种情况。
具体来说,我遇到一个Web服务客户端无法确定正确的端点配置的问题,即使我像这样静态编译它:
this.ws = new MyServicePortTypeClient("MyServicePort", "http://mysite.com/customer_portal/ws.php");
异常抛出状态“System.InvalidOperationException:无法在ServiceModel客户端配置部分找到引用合同'MyWebService.MyServicePortType'的默认端点元素。这可能是因为没有找到您的应用程序的配置文件,或者因为没有端点匹配此合同的元素可以在客户端元素中找到。“
我很茫然,所以任何帮助都会受到赞赏。
编辑:这是MyService.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MyServiceBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://mysite.com/customer_portal/ws.php"
binding="basicHttpBinding" bindingConfiguration="MyServiceBinding"
contract="MyWebService.MyServicePortType" name="MyServicePort" />
</client>
</system.serviceModel>
</configuration>
答案 0 :(得分:1)
EXE正在从 FileName.exe.config 中获取设置,而不是来自App.config
编译代码时应自动生成 FileName.exe.config ,并将其放在EXE本身旁边。
检查您拥有EXE的文件夹..您在那里看到 FileName.exe.config 吗?
(由于长度和格式而发布为答案)
答案 1 :(得分:1)
好吧,我在大家提供的信息的帮助下弄明白了。
问题是installutil.exe正在尝试使用自己的配置,而不是服务创建的配置。在这种情况下,它正在尝试加载C:\ Windows \ Microsoft.NET \ Framework \ v2.0 ... \ InstallUtil.config。
现在我已经明白了,我可以使用它并让它正常工作。
谢谢,你们!