WCF Web 服务错误
Posted
技术标签:
【中文标题】WCF Web 服务错误【英文标题】:WCF WebService Error 【发布时间】:2014-01-08 06:28:33 【问题描述】:错误
错误:无法从 localhost:81/WebServices/Legacy.svc 如果这是 Windows (R) 请访问您有权访问的通信基础服务 检查您是否已在指定位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN 文档位于 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata交流 错误 URI:localhost:81/WebServices/Legacy.svc 元数据 包含无法解析的引用: 'localhost:81/WebServices/Legacy.svc'。
我的 Web.Config
<system.serviceModel> <services> <service name="Web.WebServices.Legacy" behaviorConfiguration="serviceBehaviorsZero"> <endpoint address="" name="SspService" binding="basicHttpBinding" bindingConfiguration="basicHttpBindingZero" contract="Web.WebServices.ILegacy" /> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <bindings> <basicHttpBinding> <binding name="basicHttpBindingZero"> <security mode="None"> </security> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="serviceBehaviorsZero"> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> </system.serviceModel>
为什么我无法使用 WCF 测试客户端访问我的网络服务?
当我在浏览器中通过 URL localhost:81/WebServices/Legacy.svc 访问时 我收到这个错误 文件名、目录名或卷标语法不正确。
更新:我的 .svc 文件代码
<%@ ServiceHost Language="C#" Debug="true" Service="Web.WebServices.Legacy" CodeBehind="Legacy.svc.cs" %>
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
public class Legacy : ILegacy
public string DoWork()
return "https";
【问题讨论】:
你能显示.svc文件的内容吗? 您有mexHttpsBinding
- 可能将其更改为 mexHttpBinding
,或者将测试客户端更改为指向本地 HTTPS 端点?
@Chris: 标记: C# 代码:命名空间 Web.WebServices [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] public class Legacy: ILegacy public string DoWork() return "OK";
【参考方案1】:
将简单的文件放在网站目录(hello.html)上,并检查它是否可以访问(helloworld.html)
你好世界 你好世界!!!
如果不工作 - 检查您在 IIS 上的绑定设置,以及服务及其应用程序池是否已打开。
-
在 IIS 配置中,选择“功能视图”,然后转到“目录浏览”+启用。
在 svc 的末尾放置:...svc?wsdl
首先检查您自己的本地环境。一切正常后,您可以从网络上查看。
在 Visual Studio 上,您应该通过创建新网站(新文件夹)来完成基本操作,并将结果复制到网站(包括 web.config) - 有一个默认源代码。您可以向服务添加新功能(即 helloworld,它返回一个字符串,并在 iservices 上引用它)。
如果没有创建 svc 文件(旧 VS 版本) - 您可以创建自己的文本文件,然后复制+粘贴来修复 svc 文件...在网站上,应该有 app_code 和 app_data 文件夹。
希望有所帮助。 祝你好运!!!
【讨论】:
以上是关于WCF Web 服务错误的主要内容,如果未能解决你的问题,请参考以下文章
WCF Web 服务错误:“服务端点绑定不使用 HTTP 协议”?
调用 Sitefinity WCF Web 服务时出现错误 401