길을 따라 여러 서버에 배포되는 WCF 응용 프로그램을 작성 중이며 언제든지 app.config를 변경할 필요가 없다는 것을 기억하고 싶습니다. 배치. 처음에는 내의 app.config의 ServiceModel은 서비스 부분이 닮은 :Asp.net 자체 호스팅 WCF 서비스 상대 경로가있는 WSDL
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
<behaviors>
<serviceBehaviors>
<behavior name="MyDefaultServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8888/MyService" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyDefaultServiceBehavior" name="MyService">
<endpoint address="net.tcp://localhost:9001/MyService" binding="netTcpBinding" contract="IMyService" name="NetTcpBinding_IMyService" />
</service>
</services>
내 로컬 컴퓨터에서 실행중인 서비스에 액세스 할 때이 개발에서 잘 작동합니다. 그래서
<xsd:import schemaLocation=http://localhost:8888/MyService?xsd=xsd0 namespace="http://tempuri.org/" />
, 나는 그렇게처럼의 app.config에 httpGetUrl을 변경할 수 있습니다 :
<serviceMetadata httpGetEnabled="true" httpGetUrl=http://devserver1:8888/MyService />
를 그리고 이제 WSDL 작동 내가 그것을 배치 할 때, WSDL은 절대 여전히 localhost를 가리키는 경로를 포함 해당 서버에서 올바르게 문제는 배포 할 각 app.config에서 수동으로 주소를 설정해야한다는 것입니다.
다음 중 하나의 방법이 있습니까 :
1. 가져 오기가 없도록 wsdl에 이미 모든 항목이 포함되어 있습니까?
또는
2. wsdl import 문에서 상대 경로를 사용 하시겠습니까?
또는 다른 의견을 보내 주시면 감사하겠습니다. 나는이 wsdl 문제가 아니라면 배치가 자동화 된 두 개의 개발 서버를 가지고 있습니다.
프록시를 생성하기위한 것일 뿐이므로 프록시를 생성하여 직접 배포 할 수는 있지만 사용자가 직접 프록시를 생성 할 수 있다고 가정합니다.
감사합니다. Daniel
꽤 많이하는 방법입니다. –
나를 위해 더 큰 문제는 모든 사람이 컴퓨터 이름을 사용하여 서버에 액세스 할 수 없다는 것입니다. 어떤 사람들에게는 심지어 해결되지도 않습니다. 귀하의 솔루션은 내 질문에 대한 좋은 답변이지만, 불행히도, 나는 너무 많은 질문을 단순화하고 내 문제를 해결하지 않습니다. 솔루션에 대한 다른 의견을보십시오. – Daniel