我尝试使用VS2010 WCF服务应用程序模板来创建新的WCF服务。编辑默认服务合同并更新此合同的实现后,我尝试从VS(F5)中运行该服务。
在尝试添加我的服务时,WCF测试客户端启动并抛出并出错。
无法添加服务。可能无法访问服务元数据。确保您的服务正在运行并公开元数据。
我没有对web.config进行更改。我发布了同样的问题here.
然而,与其他帖子不同,我的服务合约是一个界面。有人能告诉我我做错了吗?
谢谢!
CheckIn.svc
using System;
using System.IO;
namespace org.myorg.pkggateway
{
public class PackageCheckIn : IPackageCheckIn
{
public bool CheckIn(int value)
{
try
{
StreamWriter sw = new StreamWriter("test.txt", true);
sw.WriteLine(value.ToString());
sw.Close();
}
catch(Exception e)
{
return false;
}
return true;
}
}
}
IPackageCheckIn.cs:
using System.Runtime.Serialization;
using System.ServiceModel;
namespace org.myorg.pkggateway {
[ServiceContract]
public interface IPackageCheckIn
{
[OperationContract]
bool CheckIn(int value);
}
}
Web.config(与autogen不变):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
更新
似乎当我重命名模板创建重构的默认.svc文件时,并没有在任何地方重命名此文件。必须在其他地方引用它。但是,当我搜索整个解决方案以使用“Service1.svc”时,它在任何地方都不存在。有谁知道如何清理它?我甚至在文件系统上搜索了一个包含这个文件名的文件,但没有提到任何内容。我找不到VS仍在引用此.svc文件的位置。有人有这个问题吗?
我已完全删除了该服务并创建了一个新服务,问题仍然存在。
更新
当我运行我的解决方案时,WCF测试客户端无法加载已删除的服务。然而,确实存在的那个很好。我想我必须忽略这样一个事实,即我无法让测试客户“忘记”这项服务。
答案 0 :(得分:0)
鉴于.svc文件存在问题,一种可能的解决方案是重新创建该文件。在VS上,创建一个新的文本文件,将其重命名为YourServiceName.svc,并添加以下内容:
<% @ServiceHost Service="org.myorg.pkggateway.PackageCheckIn" Language="C#" debug="true" %>
然后尝试浏览.svc文件(或使用WCF测试客户端打开.svc文件的URL)。
答案 1 :(得分:0)
您需要转到项目的属性并导航到Web选项卡。然后将特定页面更新为重命名的服务。