C# WCF ChannelFactory BadRequest 400 Ошибка

Я создал простой сервер веб-сервиса, но для вызова методов из класса обслуживания в том же проекте я создал прокси-сервер фабричного канала. Все работает нормально, пока я не перенесу проект (или версию exe) на другую машину. Я не могу понять, что происходит!

Я получаю это сообщение об ошибке:

The remote server returned an unexpected response: (400) Bad Request.

с помощью Stacktrace:

Server stack trace:
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResp
onse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factor
y, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
nnelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeS
pan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message messag
e, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean on
eway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan tim
eout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCall
Message methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req
Msg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
   at Client.IClientService.dosomething()
   at Host.ClientHost.Start(Uri hostUri, Int32 interval) in C:\(...)

Код:

WebChannelFactory<Client.IClientService> factory = new WebChannelFactory<Client.IClientService>(hostUri);

Client.IClientService proxy = factory.CreateChannel();

proxy.dosomething();  // Error shout here on Machine2

заранее спасибо

РЕДАКТИРОВАТЬ1: Для этого примера, нет клиентской стороны (я назвал клиента для этого сервера). Как я уже сказал, код работает без ошибок на другом компьютере (оба используют localhost).

<?xml version="1.0"?>
<configuration>
      <appSettings>
      <system.serviceModel>
        <bindings>
        </bindings>
    <services>
      <service name="Client.ClientService" behaviorConfiguration="Default">
        <endpoint address="" binding="webHttpBinding" contract="Client.IClientService"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceMetadata httpGetEnabled="true"></serviceMetadata>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

EDIT2:

В браузере я получил это:

Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: "Инициализатор типа для" Client.ClientService "вызвал исключение". Смотрите журналы сервера для более подробной информации. Трассировка стека исключений:

в Client.ClientService..ctor() в CreateClient.ClientService() в System.ServiceModel.Dispatcher.InstanceProvider.GetInstance(InstanceContext instanceContext, сообщение Message) в System.ServiceModel.Dispatcher.InstanceBehavior.GetInstance System.ServiceModel. MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc и rpcMRecRecPRM.RP) Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) в System.ServiceModel.Dispatcher.MessageRpc.Process(логический isOperationContextSet)

1 ответ

Решение

Задача решена.

Служба использует базу данных, поэтому, когда я копирую проект на новую машину, я забыл создать новую базу данных.

Другие вопросы по тегам