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