将WCF服务发布到实时网站

时间:2011-06-13 17:55:50

标签: wcf web-services visual-studio-2010 publish

我只玩了w / wc的东西大约一个星期。我让它在Visual Studio中的dev服务器上工作,现在我想将项目放在Web上。我使用Visual Studio中的发布将其添加到ftp。我的FTP客户端确认文件在那里,但是当我在浏览器中输入地址时,我收到以下错误:

'/'应用程序中的服务器错误。 无法找到该资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

请求的网址:/EquipService.svc

我需要更改某些设置或我需要在服务器上进行一些设置吗?我不知道为什么它说文件不可用,因为FileZilla显示服务器上的文件。任何帮助,将不胜感激。 感谢

修改 这是Web.config,但作为前言,我不知道这是做什么的,我只是从其他人项目中复制了一些碎片,直到错误停止并且它起作用。 :|

<?xml version="1.0" encoding="UTF-8"?>

       

<protocolMapping>
  <add scheme="http" binding="webHttpBinding" bindingConfiguration="webHttpBinding"/>
</protocolMapping>
<behaviors>
  <endpointBehaviors>

    <behavior>
      <webHttp helpEnabled="true" automaticFormatSelectionEnabled="true"/>
    </behavior> 
  </endpointBehaviors>

  <serviceBehaviors>
    <behavior name="metadataSupport">

      <serviceMetadata httpGetEnabled="true" />

      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix ="localhost"/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>
<bindings>
  <webHttpBinding>
    <binding name="webHttpBinding">
      <security mode="None">
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<services>
  <service name="EquipService.svc">
    <endpoint address="~/EquipService.svc" binding="webHttpBinding" contract="Equipment.IEquipService" />
    <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
  </service>
</services>

                

我仍然不太了解服务在Visual Studio服务器上运行的原因,而不是在Web服务器上运行。

但是谢谢你的期待。

2 个答案:

答案 0 :(得分:1)

我确实设法找出了问题的原因。这是服务器。由于某种原因,它的物理路径指向一个不正确的文件夹,现在球在他们的法院修理它。

感谢您的帮助

答案 1 :(得分:1)

使用WCFTestClient.exe测试您的服务。

我学到了很多东西。为服务创建一个单独的项目总是很好。

您可以创建一个Web服务,它可以使用localhost作为地址在同一个Web项目中使用。

我有一个场景,我试图通过我的网站的HTML页面使用javascript调用它,它不起作用,因为我在常规的webapp中创建了webservice。为了从javascript访问它我需要通过互联网发布该服务,以便javascript可以引用链接(而不是localhost)。