因为我正在考虑使用WCF,所以我认为最好还是遵循一个简单的教程来让我的脚湿透。
3个小时后,我只有一个例外。它不会消失的。
我排除了app.config没有被加载的可能性。
如果我将配置中的wshttpbinding更改为jhghjgh,则在运行时会出错。
但是,当我更改合同接口的名称时,不会给出任何错误(除了在过去3小时内我所面对的那个错误)。
有人知道如何调试这个吗?
这种黑盒错误的东西对我来说非常令人讨厌。
完全例外:
服务“wftest.testservice”为零
应用程序(非基础设施)
端点。这可能是因为不
为您的
应用程序,或者因为没有服务
与服务名称匹配的元素
在配置中可以找到
文件,或者因为没有端点
在服务元素中定义
(难道你不喜欢这些错误吗?这些错误表明了16种可能的错误中的任何一种)
我的程序
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>