디버거를 통해 로컬 컴퓨터에서 작동하고 IIS에서 서비스로 설치된 WCF 웹 서비스가 있습니다.GoDaddy에서 호스팅되는 웹 서비스가 실패합니다.
GoDaddy 호스트에 설치할 때이 웹 서비스가 실패합니다. 함수 시작 부분의 로깅 호출은 실행되지 않고 브라우저는 400/잘못된 요청 응답을받습니다.
다른 서비스도 예상대로이 작업과 함께 컴파일되므로 연결 문자열, web.config 등의 문제가 아닙니다.
이http://tucansdev.com/TalLimoService.svc/GetTransportationOffers/1,2,1410885561,false
동작 계약은 다음과 같습니다 : 서비스를 호출 할 수
URL은 간단한 "GET"호출입니다
이[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetTransportationOffers/{pickupLocID},{dropoffLocID},{pickupTime},{isAsInstructed}")]
List<GetTransportationOffersResult> GetTransportationOffers(string pickupLocID, string dropoffLocID, string pickupTime, string isAsInstructed);
는 GoDaddy와 서버의 로그가 사실을 확인하는 그 전화는 받았지만 그 이상은 없었다. 그것이 작동하는 데 사용
<system.serviceModel>
<services>
<service name="TalLimoService.TalLimoService" behaviorConfiguration="ServiceBehavior">
<!--Service Endpoints-->
<!-- Unless fully qualified, address is relative to base address supplied above-->
<endpoint address="" binding="webHttpBinding" contract="TalLimoService.ITalLimoService" behaviorConfiguration="web"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="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>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>
나쁜 아직 :
그냥 철저한 것으로, 여기의 Web.config에서 내 서비스 모델이다. 3 번째 매개 변수를 명시적인 날짜에서 시간 틱으로 변경 했으므로 인터페이스에 영향을 미치지 않습니다. 이전 버전으로 되돌릴 때 나는 여전히 400 응답을 얻었으므로 코드와 같지 않습니다. 이게 뭐야? 그것이 작동하는 데 사용하기 때문에NEXT STEP
, 나는 그때 아무 문제가 없었다 완전히 사소한 인터페이스에 코드를 단순화. 그런 다음 모든 매개 변수를 끝점에 복원했지만 빈 함수가 있습니다. 과 같이 보이는 기능의 처음 두 행 : 함수는 첫 번째 라인이있는 경우, 모든 것이 괜찮
List<GetTransportationOffersResult> transList = new List<GetTransportationOffersResult>();
TalLimoDataDataContext tlData = new TalLimoDataDataContext();
. 두 번째 줄은 서비스가 Error 400을 반환하도록합니다. 나는 .dbml 파일에 문제가 있다고 말할 것입니다. 그러나이 웹 서비스의 다른 함수들은 동일한 호출을하고 아무런 문제가 없습니다!
당신은 서비스 제공자에게 연락하여 호스팅 도메인상의 어떤 것이 바뀌 었는지 확인해 보았습니다. basicHttpsBinding에 문제가 있다면, 이것을 복제하거나 복제하기 위해 로컬로 디버깅 할 수 있습니까? – MethodMan