代码之家  ›  专栏  ›  技术社区  ›  Toad

WCF异常:InvalidOperationException未处理

  •  3
  • Toad  · 技术社区  · 14 年前

    因为我正在考虑使用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>
    
    2 回复  |  直到 13 年前
        1
  •  1
  •   urig    14 年前

    <service name="WCFtest.TestService" behaviorConfiguration="testservicebehaviour">
    
        2
  •  3
  •   Steve Cooper    14 年前

    WCFtest.testservice
    

    WCFtest.TestService