2013-09-12 3 views
0

У меня есть несколько сервисных служб WCF, которые отлично работают на нашем тестовом сервере (Windows Server 2008 R2). Когда я перемещаю эти сервисы на сервер prod, службы возвращают значение null. Я не уверен, что вызывает это. Я предполагаю, что это что-то не хватает на рабочем сервере, но не уверен, что это такое. Ниже приведен журнал исключений. Оцените любую обратную связь. БлагодаряWCF Service возвращает нулевые значения

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> 
    <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> 
    <EventID>131075</EventID> 
    <Type>3</Type> 
    <SubType Name="Error">0</SubType> 
    <Level>2</Level> 
    <TimeCreated SystemTime="2013-09-12T16:19:39.2467613Z" /> 
    <Source Name="System.ServiceModel" /> 
    <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /> 
    <Execution ProcessName="w3wp" ProcessID="4332" ThreadID="8" /> 
    <Channel /> 
    <Computer>CGWAPP268PD</Computer> 
    </System> 
    <ApplicationData> 
    <TraceData> 
     <DataItem> 
     <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error"> 
      <TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.ThrowingException.aspx</TraceIdentifier> 
      <Description>Throwing an exception.</Description> 
      <AppDomain>/LM/W3SVC/1/ROOT/HEIGISDataSvc-1-130234759301892473</AppDomain> 
      <Exception> 
      <ExceptionType>System.ServiceModel.ProtocolException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> 
      <Message>Content Type application/soap+xml; charset=utf-8 was sent to a service expecting text/xml; charset=utf-8. The client and service bindings may be mismatched.</Message> 
      <StackTrace> at System.ServiceModel.Channels.HttpInput.ThrowHttpProtocolException(String message, HttpStatusCode statusCode, String statusDescription) 
    at System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception&amp;amp; requestException) 
    at System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback) 
    at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result) 
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() 
    at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state) 
    at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
    at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped) 
    at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 
+0

Ну, привязки для клиента и службы несовместимы? (ссылка Приложение типа контента/мыло + xml; charset = utf-8 было отправлено службе, ожидающей text/xml; charset = utf-8. Связи клиента и службы могут быть несовместимы.) – MatthewMartin

+0

открыть клиент и перейти к веб-ссылкам и обновить ссылки. Скажите, если бы это исправило вашу проблему.] –

ответ

0

Я думаю, что это ключ к нему:

Тип содержимого приложения/мыло + XML; charset = utf-8 был отправлен службе, ожидающей text/xml; кодировка = UTF-8. Связи клиента и службы могут быть несовместимы.

A thread on the ASP.NET forums касается той же проблемы.

Это, как правило, несоответствие в клиент/сервер привязок, где версия сообщение службы использует SOAP 1.2 (который ожидает приложения/мыло + XML) и версии в клиенте использует SOAP 1.1 (который отправляет текст/xml). WSHttpBinding использует SOAP 1.2, BasicHttpBinding использует SOAP 1.1. Попробуйте следующие способы проверки того, может ли он решить проблему с вашей учетной записью .

  1. Изменения BasicHttpBinding в WsHttpBinding
  2. Изменения пула приложений для запуска под сетевой службой и дал сервисной сети соответствующих разрешений.
0

Спасибо за отзыв всем. Оказывается, после установки параметра «Включить 32-разрядные приложения» значение true в приложении adv установило эту проблему.

Смежные вопросы