在Web项目中托管WCF服务

Bob*_*way 5 .net wcf

我正在尝试在ac#mvc web项目中创建一个wcf服务.我添加了一个"WCF服务"类型的新项目,并在提供的接口中添加了一个测试方法:

[ServiceContract]
public interface ITest
{
    [OperationContract]
    void DoWork();

    bool testWorking();
}
Run Code Online (Sandbox Code Playgroud)

并提供的服务:

public class Test : ITest
{
    public void DoWork()
    {
    }

    public bool testWorking()
    {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我转到web.config文件并将以下内容添加到system.ServiceModel标记:

 <services>
      <service name="Test" behaviorConfiguration="MyServiceTypeBehaviors">
        <endpoint address="" binding="wsHttpBinding" contract="ITest">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex"  binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MyServiceTypeBehaviors" >
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
Run Code Online (Sandbox Code Playgroud)

在这一点上,据我所知,我应该能够在浏览器中查看这个并获得测试消息告诉我,这是我实现客户端使用此服务的时间.然而,实际发生的是我的浏览器下载.svc文件!

两个问题:

1)我到底做错了什么?为什么我没有看到预期的消息?

2)有什么办法可以自动启动WCF测试工具来运行这项服务吗?我能找到的唯一指导方针是从WCF项目开始.

更新:( svc文件的内容 - 从评论中抓取)

<%@ ServiceHost Language="C#" Debug="true" 
    Service="myemployersaddress.com.Test" CodeBehind="Test.svc.cs" %> 
Run Code Online (Sandbox Code Playgroud)

ili*_*ian 1

根据你的描述,你应该没问题,但因为你不是:

  1. 您使用什么服务器?IIS,卡西尼号?
  2. 您下载的 svc 文件的内容是什么?(用记事本打开)

要从 Visual Studio 内部启动测试工具,请右键单击 .svc 文件并“设置为起始页”,然后按 f5。这应该会打开测试工具并允许您检查您的服务。这应该会给您一些关于问题所在的线索。