如何让我的应用程序识别app.config文件?

时间:2014-11-18 23:03:15

标签: .net vb.net web-services wcf-binding

这个概念直到现在才真正成为我的问题。在VB.NET中,每个应用程序都会自动生成app.config文件。多年来我一直忽视它们,但最近,随着我的任务是开展越来越多的Web服务工作,他们似乎能够发挥有用的作用。这主要是绑定和端点的配置。我以前在代码中完成了所有这些操作,但我认为使用app.config会很有用,这样在端口号或IP更改的情况下我可以更改元素数据而不是使用更改重新编译项目(我实际上目前正在使用appsettings,但你明白了 - 我想要一个更完整的解决方案)。

所以,我的问题是,当应用程序部署在我自己以外的计算机上时,我的应用程序似乎无法识别app.config文件。目前我得到了可怕的'找不到引用合同blahblah的默认端点元素',这似乎表明我的端点信息没有被读取。如果我在代码中执行相同的操作,它可以正常工作。

除了编译之外,我还需要做些什么才能从app.config获取绑定/端点等以应用?

代码示例(可行):

Dim epa As New EndpointAddress("https://www.mysite.com/devserviceloc/test1.svc")
Dim binding As New BasicHttpBinding
binding.Name = "secureHttpBinding"
binding.Security.Mode = BasicHttpSecurityMode.Transport
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None
binding.Security.Transport.Realm = ""
Dim test As New TestingService1.test1Client(binding, epa)

等效的App.config(不起作用)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">

    <requiredRuntime version="v4.0.20506"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="secureHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
          </security >
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
    <endpoint address="https://www.mysite.com/devserviceloc/test1.svc" binding="basicHttpBinding"
      bindingConfiguration="secureHttpBinding" contract="TestingService1.Itest1"
      name="BasicHttpBinding_Itest1" />
    </client>
  </system.serviceModel>

  <system.windows.forms jitDebugging="true" />
</configuration>

1 个答案:

答案 0 :(得分:1)

实际构建应用程序时,需要将其称为YourApplication.exe.config

如果是EXE,则需要将其重命名为assemblyname.exe.config,如果是DLL,则需要将其重命名为assemblyname.dll.config。 Visual Studio通常在编译时为您执行此操作。它在源文件夹中仍为app.config,但应在Debug&amp; amp;中重命名。发布文件夹。

You can see this mentioned here in the Application Configuration Files section.