我有一个新创建的 WCF .SVC,它托管在一个 ASP.NET 网站中,该网站还托管传统的 ASMX 样式服务。
如果我调用 SVC 中包含的单个方法,我会收到以下消息。
“没有http://localhost/REDACTEDSITE/LicenseVerification.svc
可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。”
但是,我可以将该链接粘贴到本地计算机上的任何浏览器中并获得“这是 Windows© Communication Foundation 服务。此服务的元数据发布当前已禁用。 ”页面。
IIS 日志显示浏览器正在发出 GET 请求并收到 200 响应。WCF 客户端发出 POST 请求并接收 404.0 响应。
这些是我使用的最新配置设置。它们有点小。
主持人
<system.serviceModel>
<client entries for other services that work>
<services>
<service name="LicenseVerification.svc">
<endpoint address="LicenseVerification.svc"
binding="basicHttpBinding" bindingConfiguration="" contract="Management.ILicenseVerification" />
</service>
</services>
</system.serviceModel>
客户
<system.serviceModel>
<client>
<endpoint address="http://localhost/REDACTEDSITE/LicenseVerification.svc"
binding="basicHttpBinding" bindingConfiguration="" contract="Management.ILicenseVerification"
name="LicenseVerificationClient">
</endpoint>
</client>
</system.serviceModel>
合同
[ServiceContract]
public interface ILicenseVerification
{
[WebInvoke(Method="GET")] //have tried WebGet()
[OperationContract]
LicenseInfo GetProfileLicenseInfo(string profileName);
}
服务内涵
public class LicenseVerification : ILicenseVerification
{
LicenseInfo ILicenseVerification.GetProfileLicenseInfo(string profileName)
{
ProfileInfo _pi = ProfileHelper.GetRequestedProfileInfo(profileName);
if (_pi == null)
{
return null;
}
return LicenseVerifier.GetLicenseInfo(_pi);
}
}
我已经尝试重新注册 asp.net 4.0,修复服务模型,重新启动 IIS,使用 MS 服务配置实用程序和手动删除和重新创建配置文件,但我仍然无法让它工作。
这些都是小请求(几 KB),所以我认为这不是大小问题。
唯一突出的是 GET/POST,但这对于我制作的 SVC 之前不是问题。
我的本地环境是 Win7/64、VS2010、.NET 4。
请让我知道还有什么可以尝试的。我已经剔除了相同的各种 SO 帖子并且没有运气(即使是那些看起来明显不同的帖子)。