이것은 지금까지 결코 저에게 문제가되지 않은 개념입니다. VB.NET에서는 모든 응용 프로그램이 자동으로 app.config 파일을 생성합니다. 수년 동안 나는 그것을 무시했지만 최근에는 웹 서비스에 점점 더 많은 작업을해야하는 임무가 주어지면서 유용한 역할을 할 수있는 것처럼 보입니다. 이는 주로 바인딩 및 엔드 포인트의 구성과 관련이 있습니다. 나는이 모든 일을 과거 코드에서했지만 app.config를 사용하면 포트 번호 나 IP가 바뀌는 경우에 변경 사항을 적용하여 프로젝트를 다시 컴파일하는 대신 요소 데이터를 변경할 수 있으므로 유용하다고 생각합니다. (사실 저는 현재 이것을 위해 appsettings를 사용합니다. 그러나 당신은 아이디어를 얻습니다 - 저는보다 완벽한 해결책을 원합니다).내 응용 프로그램에서 app.config 파일을 인식하도록하려면 어떻게합니까?
내 문제는 내 응용 프로그램이 내 컴퓨터 이외의 컴퓨터에 응용 프로그램을 배포 할 때 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>
, 그것은 YourApplication.exe.config 호출 할 필요가있다. 응용 프로그램에서 리터럴'app.config'를 사용하려고합니까? 그렇다면 DLL의 경우 EXE를'assemblyname.exe.config'로, 어셈블리 파일명을'assemblyname.dll.config'로 변경해야합니다. Visual Studio에서는 일반적으로이 작업을 수행합니다. – TyCobb
IIS를 사용하여 웹 서비스를 제공하는 경우 구성 파일의 이름을 Web.config로 지정해야합니다. – DeanOC
@TyCobb 네, 그게 내가하려는 일입니다. 어셈블리 이름과 일치하도록 이름을 바꿔야한다는 생각이 전혀 들지 않았습니다. 내 IDE는 나를 위해 이름을 지정하지 않습니다 - 항상 'app.config'입니다. (만약 당신이 대답으로 올리면 upvote 할 수있을 것입니다.) –