因为我考虑到使用WCF我认为这将是最好的,只是遵循一个简单的教程,让我的脚湿。WCF异常:InvalidOperationException异常是未处理
3个小时后,我只有一个例外,以示对。它不会消失。
我排除了未被加载的app.config。 如果我将配置中的wsHttpBinding更改为JHGHJGH,它会在运行时发生错误。 但是,当我更改合同界面的名称,没有给出错误(除了我在过去3小时所面对的同一个)
有没有人有一个想法如何调试? 这种黑匣子错误的东西对我来说是非常令人厌恶的。
完全例外:
服务 'WCFtest.TestService' 具有零 应用程序(非基础设施) 端点。这可能是因为没有 配置文件中找到了适合自己 的应用程序,或者是因为没有服务 元件匹配的服务名称 可以在配置 文件中找到,或者因为没有终点的服务元素定义
(难道你不爱这些错误这表明任何的16分可能是错的可能的事情)
我的Program.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
}
}
我的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>
良好的渔获物。我以为servicename实际上是你给它的任何名字。但是你说它必须与实现该服务的类匹配。谢谢!令人惊讶的是,人们可以在此找到3个小时,而其他人在几分钟内就可以找到它 – Toad
适合每个人;)。下面是对它的解释 - “配置文件中指定的服务名称属性作为相应ExchangeService.svc的查找键,它告诉主机环境该配置属于哪个服务。” [来源:http://msdn.microsoft.com/en-us/library/bb332338。aspx] – urig
虽然整个WPF体验让我有些害怕。表面上它只是在源代码中添加一些属性。但配置和来回发送的东西(我嗅到它)是复杂的,令人惊讶的。为了与其他技术(如PHP)进行互操作,我甚至不敢碰它。 – Toad