Поскольку я обдумываю использовать WCF, я подумал, что было бы лучше просто следовать простому учебнику, чтобы намочить ноги.
3 часа спустя, у меня есть только одно исключение. Это не уйдет.
Я исключил, что app.config не загружается.
Если я изменяю: wsHttpBinding в конфигурации на JHGHJGH, он выдает ошибку при запуске.
Однако, когда я изменяю имя интерфейса контракта, ошибки не выдаются (кроме той, с которой я столкнулся за последние 3 часа)
У кого-нибудь есть идеи, как это отладить?
Подобные ошибки в чёрном ящике для меня очень неприятны.
полное исключение:
Служба WCFtest.TestService имеет ноль
приложение (не инфраструктура)
конечные точки. Это может быть потому, что нет
файл конфигурации был найден для вашего
приложение, или потому что нет службы
элемент, соответствующий имени службы
можно найти в конфигурации
файл, или потому что конечные точки не были
определено в сервисном элементе
(Разве вы не любите эти ошибки, которые указывают на любую из 16 возможных вещей, которые могут быть неправильными)
моя программа.cs
ServiceHost host;
Type serviceType = typeof(TestService);
host = new ServiceHost(serviceType);
host.Open(); //<---- exception is thrown here
Console.ReadLine();
мой тест 'сервис wcf'
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace WCFtest
{
[ServiceContract]
public interface ITest
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
public class TestService : ITest
{
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
etc... some methods are removed for brevity
}
}
my app.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<services>
<service name="WCFtest.testservice"
behaviorConfiguration="testservicebehaviour">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/test"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="WCFtest.ITest" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="testservicebehaviour">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>