2013-08-06 4 views
12

현재 내 개발 컴퓨터에서 IIS Express에서 실행중인 webHttpBinding을 사용하여 새 IIS 호스트 WCF 서비스를 만들었으며 "서비스 참조 추가"를 시도하면 서비스가 올바르게 빌드됩니다. Reference.cs 파일은 괜찮아 보이지만 web.config 또는 app.config 파일은 업데이트되지 않습니다.VS2012 서비스 추가 참조 구성 파일을 업데이트하지 않음

경고 또는 오류 메시지가 수신되지 않습니다.

서비스와 클라이언트는 모두 .Net 4.5를 대상으로합니다.

서비스 설정

<system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding name="webInteropSecureBinding" allowCookies="false" maxBufferPoolSize="2097152" maxBufferSize="2097152" maxReceivedMessageSize="2097152"> 
      <security mode="Transport" /> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <services> 
     <service name="PsmDataProvider.PsmProvider" behaviorConfiguration="SecureRest"> 
     <clear /> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="webInteropSecureBinding" name="PsmProvider" contract="PsmDataProvider.IPsmProvider" listenUriMode="Explicit" behaviorConfiguration="webHttpBehavior" /> 
     <endpoint address="mex" binding="mexHttpsBinding" name="mex" contract="IMetadataExchange" listenUriMode="Explicit" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="https://localhost:44300/PsmProvider/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="SecureRest"> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
     <behavior name="webHttpBehavior"> 
      <webHttp /> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 

클라이언트 구성

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

클라이언트 서비스 참조

enter image description here

일부 조사 후 내가 찾은이 StackOverflow의 질문에

Question 1

Question 2

Question 3

그리고이 게시물

Blog post

위 심판의 각 "References types in References typeses"플래그를 해제하는 것과 같은 문제가 발생했습니다.

enter image description here

문제는 문제가 해결되지 않은 것입니다. 업데이트를 시도하고 서비스 참조를 삭제하고 다시 만들었지 만 설정 파일을 업데이트하지 않습니다. 이 서버 측 구성에 문제

질문

인가? 아니면 클라이언트 측의 문제입니까? 프록시 생성이 예상대로 작동하도록 변경하는 방법은 무엇입니까?

답변

6

WebHttpBinding WCF 바인딩을 구현하는 서비스에 대한 서비스 참조를 추가하는 데 문제가있는 것처럼 보입니다.

이것은 내가 VS2012 오늘 다시 같은 문제가 있었다 Carlos Figueira Blog Post

+0

이것이 내 문제의 원인이었습니다. Visual Studio에서 서비스 참조를 생성 할 때 RESTful 서비스처럼 작동하도록 구성된 WCF 서비스에이 문제가 있습니다. – Sal

0

web.config 파일에서 maxBufferPoolSize="2097152" maxBufferSize="2097152"을 제거하십시오. 그런 다음 서비스를 업데이트하십시오. 바인딩이 올바르게 언급되었는지 확인하십시오.

+0

바인딩에서 모든 옵션을 제거하고 서비스 참조를 삭제하고 다시 만들었지 만 문제가 해결되지 않았습니다. –

+0

바인딩해야합니다. 그러나 적절한 방법입니다. –

0

에서 설명합니다.

나는 Test, PreProduction 및 Production web을 가지고 있습니다.때 설정 구성, 나는 "미리 변환"을 사용하고 가 관련 설정을 내 "의 Web.config"패치였습니다 VS2012를 참조하십시오 ..

Preview

을 ...하지만 ... 수 배치되었으므로 변경하지 않고 기본 "web.config"파일을 포함하는 것처럼 보였습니다.

원인은 VS2012의 구성이 엉망인 것 같았고 게시 대화 상자에서 갑자기 내 PreProduction 구성이 디버그와 연결되어있었습니다. 응? "디버그"에서이 변경

Publish

에 "프리 프로덕션은"나를 위해 문제를 해결했습니다.

또는 적어도 나에게 앞으로 나아 갔지만 배포를 시도 할 때 VS2012가 내 구성 이름을 엉망으로 만드는 문제가 있습니다.

Deploy

(우울 한숨.)

현재 VS2013 다운로드. 바라건대,이 릴리스는 덜 버그 것입니다.

0

제 경우에는 웹 서비스 측에서 바인딩 매개 변수를 잘못 설정 한 것이 원인이었습니다.

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

이 값을 System.TimeSpan (0, 10, 0)으로 설정 한 후; 바인딩 구성은 web.config 파일에서 생성됩니다.