2009-11-09 4 views
0

.NET 4.0으로 작성된 WCF 서비스 라이브러리가 있습니다. 동일한 솔루션 내에서 WCF 응용 프로그램 (IIS에서이 서비스를 호스팅하기 위해)이 있습니다. 여기에는 WCF 라이브러리 어셈블리 참조와 WCF 서비스 라이브러리의 app.config의 복제본 인 web.config와 함께 라이브러리의 서비스를 가리키는 service.svc 파일이 포함되어 있습니다. WCF 응용 프로그램은 IIS7에서 서비스를 호스팅하도록 설정됩니다 (가상 디렉터리가 설정되었습니다). 동일한 솔루션에는 IIS에서 호스팅되는 WCF 서비스를 가리키는 서비스 참조가 추가 된 ASP.NET Webform 솔루션이 포함되어 있습니다 (언급 된대로).IIS7에서 WCF 서비스를 올바르게 호스트 할 수 없습니다.

이 ASP.NET 웹 응용 프로그램의 인스턴스를 시작할 때 "The WCF service has been hosted"라는 메시지가 나타나고 ASP.NET 응용 프로그램에서 올바르게 데이터에 액세스 할 수 있습니다. 그러나, 내가 시도하고 IIS에서 호스팅되는 서비스를 가리키는 다른 솔루션에서 동일한 컴퓨터에서 MVC 2 웹 응용 프로그램에 추가 된 서비스 참조를 통해이 데이터에 액세스 할 때 얻을 "원격 서버 오류를 반환했습니다 : (405) Method Not Allowed. " 프로토콜 예외. 그러나 다른 솔루션에서 WCF 서비스 라이브러리를 호스팅하는 데 사용한 WCF 응용 프로그램의 인스턴스를 수동으로 호출하면 MVC 응용 프로그램에서 서비스 데이터에 액세스 할 수 있습니다.

개발 IDE로 VS2010 Beta 2를 사용하고 있습니다. 나는이 문제에 당분간 붙어있다. 어떤 도움을 주시면 감사하겠습니다. 다음과 같이

내 서비스 설정은 다음과 같습니다 -

<system.serviceModel> 
<services> 
    <service behaviorConfiguration="CruxServices.BasicSearchServiceBehavior" 
    name="CruxServices.BasicSearch.BasicSearch"> 
    <endpoint address="" binding="wsHttpBinding" name="WSBindingEndpoint" bindingConfiguration="WSBindingConfig" 
     contract="CruxServices.BasicSearch.Interfaces.IPropertyListFilter"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" name="MexEndpoint" 
     contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost/CruxServices" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="CruxServices.BasicSearchServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <wsHttpBinding> 
    <binding name="WSBindingConfig"> 
     <security mode="None"> 
     <transport clientCredentialType="None"/> 
     <message establishSecurityContext="false"/> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

답변

0

IIS의 구성에서 사용하려는 .NET 프레임 워크의 버전을 지정합니다. 이러한 맥락에서

의 .NET Framework 4 개 버전이 1.0, 1.1, 2.0 및 4.0

첫 번째 문제는 IIS 프레임 워크에게 당신은 할 수있다 그러나 당신이 할 수있다 4.0

을 실행하도록 구성되지 않는 것입니다 더 큰 문제가있다, 나는 그것이 가능하다면, 당신은 지금 그것을 확인 했 IIS 7.5

편집

을해야 할 수도 있습니다 모르겠습니다. 제대로 작동하려면 프레임 워크 4가 응용 프로그램 풀의 프레임 워크로 선택되어 있는지 확인해야합니다.

+0

안녕하세요, 쉬라즈, 답장을 보내 주셔서 감사합니다. IIS 7.5와 함께 제공되는 Windows 7 상자에서 실행하고 있습니다. NET 4.0이 설치되어 있고 .NET 4.0 MVC 2 응용 프로그램이므로 VS2010을 설치했습니다. – user206736

관련 문제