我正在尝试在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)
根据你的描述,你应该没问题,但因为你不是:
要从 Visual Studio 内部启动测试工具,请右键单击 .svc 文件并“设置为起始页”,然后按 f5。这应该会打开测试工具并允许您检查您的服务。这应该会给您一些关于问题所在的线索。