1

我知道这是一个常见问题解答,并且我已经阅读了所有类似的 Q 和 A,但我仍然不正确。

一般来说,我是 Web 服务和 ASP.NET 的新手。我有一个由同事编写的小型 WCF 服务应用程序,该应用程序可以在他的电脑上运行并进行演示。在我的电脑上,没有任何更改,当将其添加为服务时,我无法让它被 WCF 测试客户端程序接受(下面的错误消息)。我的同事现在请假!

项目属性设置为开始WcfTestClient.exe使用具有自动分配端口号的 VS 开发服务器。该项目添加了服务所需的一个webform.aspx和一个文件。Global.asax

我跑了

netsh http add urlacl url=http://localhost:51568/Service1.svc user=<loginname>

我的问题是如何让 WcfTestClient 启动服务以及浏览器上的网络表单?

我已经查看了类似问题的各种 SO 答案,但仍然感到困惑。

添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据。错误:无法从中获取元数据http://localhost:51568/Service1.svc如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅...错误 URI:http://localhost:51568/Service1.svc
元数据包含无法解析的引用:“ http://localhost:51568/Service1.svc”。没有端点监听http://localhost:51568/Service1.svc可以接受该消息。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。无法连接到远程服务器 由于目标计算机主动拒绝它,无法建立连接 127.0.0.1:51568HTTP GET 错误 URI: http://localhost:51568/Service1.svc 下载“ http://localhost:51568/Service1.svc”时出错。无法连接到远程服务器 由于目标机器主动拒绝,无法建立连接 127.0.0.1:51568

这是我的 web.config:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
    <services>
        <service name="Service1" behaviorConfiguration="DefaultBehavior">
            <endpoint address="http://localhost:*/Service1" binding="basicHttpBinding" contract="IService1" />
            <endpoint address="http://localhost:*/Service1/mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior name="DefaultBehavior">
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

关于端口号让我感到奇怪的是,如果我没有将项目设置为从外部程序开始,那么浏览器会在 localhost 端口 50345 列出目录列表,这是与 51568 不同的端口号。

4

1 回答 1

0

无法连接到远程服务器 由于目标机器主动拒绝,无法建立连接 127.0.0.1:51568

如果我没有将项目设置为从外部程序开始,那么浏览器会在 localhost 端口 50345 列出目录列表

这仅仅意味着您的 WCF 服务托管在后一个端口。您可以在项目属性的“Web”选项卡上更改此设置。

于 2012-06-29T09:29:55.177 回答