2011-01-28 3 views
2

개발 환경이 따로 있습니다. 우리가 주로 웹 어플리케이션을 호스팅하는 프로덕션 서버에서 우리는 미리 컴파일 된 웹 프로젝트 버전을 배포합니다.WCF 서비스와 통신하는 클래스 라이브러리를 참조하는 웹 응용 프로그램을 배포합니다.

개발 중에 나는 세 가지 프로젝트를 진행합니다. 하나는 WCF 서비스입니다. 둘째, 클래스 라이브러리 프로젝트입니다. 이 라이브러리에는 WCF 서비스를 호출하는 클래스가 있습니다. 세 번째는 클래스 라이브러리를 사용하는 웹 프로젝트입니다.

마지막 두 프로젝트는 VS 솔루션 아래에 있습니다. 개발 환경에서 wcf 서비스를 호스팅합니다. 이 서비스는 내 클래스 라이브러리에 서비스 참조로 추가됩니다.

DLL (클래스 라이브러리 프로젝트의 출력)을 웹 프로젝트에 추가하고 웹 프로젝트를 배포해야하는 상황을 시각화 할 수 없습니다. 배포 당시에는 서비스 참조를 변경해야합니다 (wcf 프로덕션을 가리켜 야하므로 svc 파일의 URL이 변경됩니다). 이 일에 어떻게 가야합니까? dll을 웹 프로젝트에 추가 할 때 무엇을주의해야합니까?

답변

4

DLL에 대해 너무 걱정하지 마십시오. 그것은 웹 애플리케이션, 웹 사이트, 윈도우 서비스 등을 통해 실행되는 애플리케이션의 구성을 취할 것입니다. 그래서 당신의 웹 서비스 바인딩을 추가 한 프로젝트를 염두에두고 app/web.config에 system.service 모델 섹션이 포함되어 있어야합니다.이 섹션은 해당 어셈블리를 사용하는 모든 응용 프로그램의 구성 파일에 포함해야하며 웹 서비스.

<client> 
    <endpoint address="http://blahblah:8000/blah" binding="wsHttpBinding" 
     bindingConfiguration="WSHttpBinding_Service1" contract="GenService.Service" 
     name="WSHttpBinding_Service" /> 
</client> 

는 개인적으로 내가 설정의 변환을 사용

당신의 Web.config의는 system.serviceModel 섹션에서의 바인딩을 변경하고 Web.config의를 설정 밖으로 hastle을하는 사이트를 구축 할 프로파일을 게시하려면 파일. 그래서 나는 Web.Production.config이

<system.serviceModel> 
    <client> 
     <endpoint name="WSHttpBinding_Service" address="http://production/blah" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(address)" /> 
    </client> 
</system.serviceModel> 

가이드는 여기에있을 것이다 http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

+0

나는 이것이 _web.config_에 _app.config_에서 전체는 system.serviceModel 노드를 복사하는 것과 동일 바랍니다. 이제는 위에서 언급 한 방법으로 수동으로 엔드 포인트 주소를 편집 할 수 있다고 말한 것 같습니다. 이것은 나를 위해 일했다. 감사. – deostroll

0
당신이 게시 할 때

는만큼 당신이 당신의 웹 응용 프로그램 내에서 클래스 라이브러리에 referece를 추가, 모두 dll을의이 배포됩니다 웹 애플리케이션 프로젝트를 프로덕션으로 가져옵니다. WCF url을 변경해야하는 한 web.config 파일의 AppSettings 내에 URL을 키로 추가합니다.

의 Web.config :

<configuration> 
    <appSettings> 
     <add key="WCF_URL" value="http://url to wcf service"/> 
    </appSettings> 
//snip.. 
</configuration> 

코드 : 당신이 알아야 할

// Establish the proxy with the WCF Service that you added as a Web Reference in your solution 
WCFService.<class> myWCFService= new WCFService.<class>(); 
// Check the web.config for the URL to WCF web service 
myWCFService.Url = ConfigurationManager.AppSettings["WCF_URL"]; 
0

우선은 .DLL에 의해 사용되지 않습니다 라이브러리 프로젝트에 배치하는 구성 파일입니다. DLL은 웹 구성 파일을 사용합니다. 따라서 WCF 서비스에 대한 URL을 구성해야합니다.

DLL 구성 파일에있는 (포함 된) 정보를 web.config에 복사하여 붙여 넣기 만하면됩니다.

안부

관련 문제