У меня проблема с WCF.
Первое приложение я написал пример с сайта this. Это сработало хорошо.
Мне нужно сделать приложение для переноса объектов из списка серверов из базы данных. Но когда я получаю список клиентов, следующие CommunicationException
:CommunicationException. WCF
Ошибка при получении ответа HTTP (localhost: 8080). Это может быть связано с привязкой конечной точки службы, не использующей протокол HTTP. Это также может быть связано с тем, что сервер HTTP-запроса прерывается (возможно, из-за отключения службы). Для получения более подробной информации см. Журналы сервера.
Сервер работал хорошо, или я ничего не понимаю.
Если вам нужна информация (код) о проекте, я дам его
Извините за мой английский.
UPD: конфигурации:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="Habra.Server.MobilePosts" behaviorConfiguration="MyBehavior">
<endpoint
address=""
binding="basicHttpBinding"
contract="Habra.Core.IMobilePosts" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
код сервера:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Habra.Server
{
using System.ServiceModel;
public class Program
{
public static void Main(string[] args)
{
Type serviceType = typeof(MobilePosts);
Uri serviceUri = new Uri("http://localhost:8080/");
ServiceHost host = new ServiceHost(serviceType, serviceUri);
host.Open();
foreach (Uri uri in host.BaseAddresses)
{
Console.WriteLine("\t{0}", uri.ToString());
}
Console.WriteLine();
Console.WriteLine("Number of dispatchers listening : {0}", host.ChannelDispatchers.Count);
foreach (System.ServiceModel.Dispatcher.ChannelDispatcher dispatcher in host.ChannelDispatchers)
{
Console.WriteLine("\t{0}, {1}", dispatcher.Listener.Uri.ToString(), dispatcher.BindingName);
}
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate Host");
Console.ReadLine();
}
}
}
UPD2:
терпит неудачу в:
MobilePostsClient mpc = new MobilePostsClient();
var list = mpc.GetAllPosts();
MobilePostClient
создан Add Service Reference
.
UPD3: IMobilePosts:
[ServiceContract]
public interface IMobilePosts
{
[OperationContract]
List<Post> GetAllPosts();
[OperationContract]
FullPost GetFullPost(int postId);
}
MobilePosts:
public class MobilePosts : IMobilePosts
{
private readonly IRepository repository = new RepositoryQueries();
public List<Post> GetAllPosts()
{
var list = this.repository.GetAllPosts();
foreach (Post post in list)
{
Console.WriteLine(post.Title + " loading...");
}
return list;
}
public FullPost GetFullPost(int postId)
{
return this.repository.GetFullPostById(postId);
}
}
Хранилища работал правильно.
Вы можете разместить код сервиса и конфигурации? – devlife
Вы можете показать, в какой момент это происходит? и конфигурационный файл для вашего сервиса? – Chris
@devlife Вы спросили меня об этом? – LuckSound