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

.net 如何让应用程序识别app.config文件?,.net,vb.net,web-services,wcf-binding,.net,Vb.net,Web Services,Wcf Binding,这是一个对我来说从未真正成为问题的概念。在VB.NET中,每个应用程序都会自动生成app.config文件。多年来,我一直忽视它们,但最近,随着我接到越来越多的web服务任务,它们似乎能够发挥有用的作用。这主要与绑定和端点的配置有关。我在过去的代码中已经完成了所有这一切,但我认为使用app.config会很有用,这样在端口号或IP发生更改的情况下,我可以只更改元素数据,而不是使用更改重新编译项目(我目前实际上使用appsettings进行此操作,但您明白了-我想要一个更完整的解决方案) 因此,我

这是一个对我来说从未真正成为问题的概念。在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等效程序(不起作用)



实际构建应用程序时,需要调用
YourApplication.exe.config

如果是exe,则需要将其重命名为
assemblyname.exe.config
,如果是dll,则需要将其重命名为
assemblyname.dll.config
。VisualStudio通常在编译时为您执行此操作。它仍然在源文件夹中
app.config
,但应该在调试和发布文件夹中重命名


实际构建应用程序时,需要将其命名为YourApplication.exe.config。您是否试图在应用程序中使用literal
app.config
?如果是这样,则需要将其重命名为
assemblyname.exe.config
(如果是exe),或者将其重命名为
assemblyname.dll.config
(如果是dll)。Visual Studio通常会为您执行此操作。如果您的web服务是使用IIS交付的,则需要将配置文件命名为web.config。@TyCobb是的,这正是我试图执行的操作。我不知道我必须重命名它以匹配程序集名称。我的IDE没有为我命名-它总是“app.config”。(如果你是作为答案发布的,我可以投票。)@DeanOC-我在服务器端的web服务方面没有遇到任何问题,因为默认情况下web.config名为web.config。我的问题是DLL和EXE可能会使用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>