2012-01-04 148 views
1

我是WCF和Windows移动开发的新手。我试图创建一个偶尔连接的应用程序,它利用MSFT同步框架,这需要使用WCF服务。在IIS上托管WCF服务

我有一个包含我的智能设备项目,WCF服务库项目和WCF服务网站项目的Visual Studio项目。

服务托管我的本地机器罚款不使用IIS,当我把它添加到IIS它给了我一个HTTP 404资源找不到错误,我可以在http://localhost:55149/ElectricReadingServiceSite/ElectricReading.svc

访问它不过。我无法弄清楚为什么它认为资源不存在。

这里是我的web.config:

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service name="MiddleTierServiceLibrary.ElectricReadingCacheSyncService" 
       behaviorConfiguration="MiddleTierServiceLibrary.ElectricReadingCacheSyncServiceBehavior"> 
     <endpoint 
      address="" 
      binding="basicHttpBinding" 
      contract="MiddleTierServiceLibrary.IElectricReadingCacheSyncContract"> 
      <identity> 
      <dns value="10.104.238.123"/> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MiddleTierServiceLibrary.ElectricReadingCacheSyncServiceBehavior"> 
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
</configuration> 

ElectricReading.svc看起来是这样的:

<%@ ServiceHost Language="C#" Debug="true" 
     Service="MiddleTierServiceLibrary.ElectricReadingCacheSyncService" %> 

任何帮助,不胜感激!

编辑:有没有任何工具或步骤可以让我更好地了解哪里出了问题? 404错误对我帮助不大。

+0

您是否检查过iis配置?有时候WCF不是默认安装在IIS上的,你应该手动执行此操作。 – 2012-01-04 18:13:59

+0

您正在访问URL ServiceHost端口#(55149),还是默认端口80(即普通URL)? – jklemmack 2012-01-04 18:18:41

+0

您使用什么URL访问IIS上托管的WCF服务? – TheBoyan 2012-01-04 18:23:10

回答

1

可能有多种原因会导致这种情况发生。

他们有些人可能包括:

  • 确保您上传Bin文件夹
  • 您已经设置了在IIS网站的组装,但你不与 正确的地址访问它(确保端口是正确的)
  • 您的应用程序池没有为网站设置(如果您使用的是.NET 4.0,则需要将应用程序池设置为4.0版)在IIS管理器中,转到ApplicationPools并设置池到您正在使用的.NET版本

尝试使用Fiddler。它应该记录它所做的调用,并因此给你一些它没有找到的细节。