Я развивающаяся службу TCP базы WCF и я получаю этот пресловутый WCF Exception при попытке запуска службы в принимающем приложении:Не удается запустить службу WCF TCP на основе
необработанного исключения типа «System .InvalidOperationException 'произошло в System.ServiceModel.dll
Дополнительная информация: Служба WcfServiceWas.MathService имеет нулевые конечные точки приложения (без инфраструктуры). Возможно, это связано с тем, что файл конфигурации не найден для вашего приложения или потому, что в файле конфигурации не найден ни один элемент службы, соответствующий имени службы, или потому, что в элементе службы не было определено никаких конечных точек.
Эта проблема была описана много раз раньше, и предлагаемое решение - назвать услугу точно так, как она определена в библиотеке классов, проблема в том, что это решение не работает для меня.
Что не так в этой конфигурации, которую служба хостинга отказывается запускать Сервис?
Service Interface (IMathService.cs):
namespace WcfServiceWas
{
[ServiceContract]
public interface IMathService
{
[OperationContract]
OperationResult Add(int x, int y);
[OperationContract]
int Subtract(int x, int y);
}
}
внедрение Service (MathService.cs):
namespace WcfServiceWas
{
public class MathService : IMathService
{
public OperationResult Add(int x, int y)
{
return new OperationResult { Result = new MyInteger { Value = x + y } };
}
public int Subtract(int x, int y)
{
return x - y;
}
}
}
Svc файл (MathService.svc):
<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceWas.MathService" CodeBehind="MathService.cs" %>
Web .Config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WcfServiceWas.MathServiceBehavior" >
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="WcfServiceWas.MathService" behaviorConfiguration="WcfServiceWas.MathServiceBehavior" >
<endpoint contract="WcfServiceWas.IMathService" binding="netTcpBinding" address="" />
<endpoint contract="IMetadataExchange" binding="mexTcpBinding" address="mex" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:999/MathServiceX/"/>
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
служба хозяин:
class Program
{
static void Main(string[] args)
{
using (var myServiceHost = new ServiceHost(typeof(MathService)))
{
myServiceHost.Open();
}
}
}
Update: app.config хостинг-приложения должен содержать конфигурацию ФОС, а также.
Спасибо за ваш ответ, я пытался настроить связыванием ранее (на самом деле у не должно иметь его в соответствии с документацией). И я попробовал ваше решение, к сожалению, ничего не сделал для меня. – BanditoBunny
Посмотрите, я создал новую службу wcf, и сначала я получил вашу точную ошибку, затем переместил раздел конфигурации из web.config службы WCF в app.config хоста службы и это сработало. Попробуйте это и дайте мне знать. –
Смена приложения app.config для хост-приложения - так что конфигурация была в порядке, она просто не учитывалась. Если вы меняете свой ответ на это, я соглашусь с ним. Благодарю. – BanditoBunny