0

创建 WCF 类库项目时,如果我从桌面运行该项目,它运行良好,但如果我从不同的路径运行它,它就不会运行!!!

我创建了 30 秒的视频来演示这一点:

http://youtu.be/5dLRQhlhe9A

在视频中,我基本上创建了一个项目,运行它,然后展示我是如何出错的。我关闭了 Visual Studio,然后将该项目移动到不同的路径运行它并且它可以工作,因为它在不同的路径上。

这是我得到的错误:

错误:无法从 http:// * * :8732/Design_Time_Addresses/AccService/Service1/mex 获取元数据 如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定位置启用元数据发布地址。有关启用元数据发布的帮助,请参阅位于 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http:// * * :8732/Design_Time_Addresses/AccService/的 MSDN 文档Service1/mex
元数据包含无法解析的引用:'http:// * * :8732/Design_Time_Addresses/AccService/Service1/mex'。 Receivera:InternalServiceFault由于内部错误,服务器无法处理请求。有关错误的详细信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或者根据 Microsoft .NET Framework 打开跟踪SDK 文档并检查服务器跟踪日志。HTTP GET 错误 URI:http:// * * :8732/Design_Time_Addresses/AccService/Service1/mex
下载时出错 'http:// * * :8732/Design_Time_Addresses/AccService/Service1 /墨西哥'。请求失败,HTTP 状态为 400:错误请求。

注意:我将* *替换为 localhost,出于安全原因,StackOverflow 不允许我放置带有 127.0.0.1 的链接。

4

1 回答 1

0

我会尝试:

  1. 通过浏览器中的 url 访问错误的元数据

我的意思是,尝试在浏览器中打开 url 'http://**:8732/Design_Time_Addresses/AccService/Service1/mex'

并确保您可以看到 wsdl。

如果没有 - 这将为您指明进行额外测试的方式。

  1. 更改行为以在特定位置公开元数据,您可以毫无问题地访问。

类似于<serviceMetadata . . . httpGetUrl=您已验证的元数据网址”。. .
(另见这篇文章):

<serviceMetadata 
    externalMetadataLocation="String"
    httpGetBinding=”String”    httpGetBindingConfiguration=”String”
    httpGetEnabled="Boolean" 
    httpGetUrl="String"
    httpsGetBinding=”String”    httpsGetBindingConfiguration=”String”
    httpsGetEnabled="Boolean" 
    httpsGetUrl="String"
    policyVersion="Policy12/Policy15"/>
于 2013-03-31T13:42:38.930 回答