2010-11-13 286 views
0

我已经阅读了几个帖子,用户有这个相同的问题。编译时,.exe无法从app.config加载任何资源。即使将app.config复制到输出目录时也会发生这种情况。app.config被忽略?

具体来说,我有一个Web服务客户端是无法确定正确的端点配置的问题,即使我静态编译它像这样:

this.ws = new MyServicePortTypeClient("MyServicePort", "http://mysite.com/customer_portal/ws.php"); 

抛出的异常状态“系统。 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> 
+1

如果无论您是否在app.config中设置了配置,都会抛出相同的异常,在我看来,app.config并未涉及您的实际问题。 – 2010-11-13 02:21:22

+0

如果是这样的话,它会是什么?可能有用的更多细节是它是一个Windows服务应用程序。当我通过Visual Studio进行调试时,它工作正常,但是在使用installutil进行安装后,它给了我这个错误。 – Skudd 2010-11-13 02:23:37

+0

你可以向我们展示**你正在使用的app.config吗?此错误很可能是由于该文件中格式错误的WCF配置。只是''部分 - 谢谢! – 2010-11-13 07:12:53

回答

1

嗯,我从大家提供的信息帮助了它。

问题是installutil.exe试图使用自己的配置,而不是服务创建的配置。在这种情况下,它试图加载C:\ Windows \ Microsoft.NET \ Framework \ v2.0 ... \ InstallUtil.config。

现在我已经知道了,我可以使用它并使其正常工作。

谢谢,你们都!

+1

好吧,你从来没有提到使用installutil。exe - 很高兴你解决它无论如何。 :) – 2010-11-15 08:15:48

1

EXE从采取设置FileName.exe.config,不从的App.config

FILENAME.EXE .config应该在编译代码时自动生成,并放在EXE本身旁边。

检查您的EXE文件夹..你看到FileName.exe.config在那里?

(如发布答案,由于长度和格式)

+0

我检查并确实有一个FileName.exe.config,我已添加到原始文章。尽管如此,它仍然被忽略。 – Skudd 2010-11-14 20:31:31

+0

WCF服务通常具有.svc扩展名,所以我不确定发生了什么。我怀疑你可以用PHP编写WCF服务。也许客户端正在抛出错误,因为PHP代码没有返回有效的响应。 – 2010-11-14 20:47:58

+0

请在这篇帖子中阅读以“嗯,我想出来......”开始的帖子。 PHP端点不是问题。 – Skudd 2010-11-14 21:16:51