2010-12-10 7 views
0

IIS 7.0에서 새 디렉터리 XYZ를 만들었습니다. web.config, Service.cs 및 Service.svc를 디렉토리에 복사했습니다. 이제 http://www.mydomain.com/XYZ/Service.svc을 탐색 할 때 '500 내부 서버 오류'가 발생합니다.웹 서버에 간단한 WCF 서비스 배포

다음은 web.cofig 파일입니다.

<?xml version="1.0"?> 
<configuration> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="true"/>   
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

</configuration> 

구성 파일에 문제가있을 수 있지만 로컬 컴퓨터에서 서비스가 정상적으로 실행되고 있다고 생각합니다.

답변

1

처음에는 코드 파일 대신 dll-file을 사용해야합니다. 코드를 컴파일하고 dll을 "bin"폴더에 넣습니다.

초에서, 당신은 web.cofnig에 엔드 포인트를 추가하지 않은 :

<system.serviceModel> 
<!-- ... --> 
    <services> 
     <service name="SiteService"> 
      <endpoint address="" binding="basicHttpBinding" 
       contract="Name of the service interface with namespace, for exanple WebApplication1.IService1" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services>  
</system.serviceModel> 

을 그리고 SVC 파일을 확인, 그 안에 서비스 이름은 설정 파일 내 서비스 이름에 해당합니다. 서비스에 <service name="SiteService"> 행이있는 경우 svc 파일은

<%@ ServiceHost Language="C#" Debug="true" Service="SiteService" CodeBehind="Service.cs" %> 
이어야합니다.